summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/websockets/doc/qmlwebsocketserver.qdoc47
-rw-r--r--examples/websockets/qmlwebsocketserver/data.qrc5
-rw-r--r--examples/websockets/qmlwebsocketserver/main.cpp54
-rw-r--r--examples/websockets/qmlwebsocketserver/qml/qmlwebsocketserver/main.qml92
-rw-r--r--examples/websockets/qmlwebsocketserver/qmlwebsocketserver.pro13
-rw-r--r--examples/websockets/websockets.pro6
6 files changed, 216 insertions, 1 deletions
diff --git a/examples/websockets/doc/qmlwebsocketserver.qdoc b/examples/websockets/doc/qmlwebsocketserver.qdoc
new file mode 100644
index 0000000..99f70b6
--- /dev/null
+++ b/examples/websockets/doc/qmlwebsocketserver.qdoc
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWebSocket module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example qmlwebsocketserver
+ \title QML WebSocket Server Example
+ \ingroup qtwebsockets-examples
+ \brief A simple example that shows how to use a QML WebSocketServer.
+*/
diff --git a/examples/websockets/qmlwebsocketserver/data.qrc b/examples/websockets/qmlwebsocketserver/data.qrc
new file mode 100644
index 0000000..e703d32
--- /dev/null
+++ b/examples/websockets/qmlwebsocketserver/data.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>qml/qmlwebsocketserver/main.qml</file>
+ </qresource>
+</RCC>
diff --git a/examples/websockets/qmlwebsocketserver/main.cpp b/examples/websockets/qmlwebsocketserver/main.cpp
new file mode 100644
index 0000000..fc107be
--- /dev/null
+++ b/examples/websockets/qmlwebsocketserver/main.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWebSocket module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/QGuiApplication>
+#include <QQuickView>
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QQuickView view;
+ view.setSource(QUrl(QStringLiteral("qrc:/qml/qmlwebsocketserver/main.qml")));
+ view.show();
+
+ return app.exec();
+}
diff --git a/examples/websockets/qmlwebsocketserver/qml/qmlwebsocketserver/main.qml b/examples/websockets/qmlwebsocketserver/qml/qmlwebsocketserver/main.qml
new file mode 100644
index 0000000..03446c4
--- /dev/null
+++ b/examples/websockets/qmlwebsocketserver/qml/qmlwebsocketserver/main.qml
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWebSocket module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import Qt.WebSockets 1.0
+
+Rectangle {
+ width: 360
+ height: 360
+
+ function appendMessage(message) {
+ messageBox.text += "\n" + message
+ }
+
+ WebSocketServer {
+ id: server
+ listen: true
+ onClientConnected: {
+ webSocket.onTextMessageReceived.connect(function(message) {
+ appendMessage(qsTr("Server received message: %1").arg(message));
+ webSocket.sendTextMessage(qsTr("Hello Client!"));
+ });
+ }
+ onErrorStringChanged: {
+ appendMessage(qsTr("Server error: %1").arg(errorString));
+ }
+ }
+
+ WebSocket {
+ id: socket
+ url: server.url
+ onTextMessageReceived: appendMessage(qsTr("Client received message: %1").arg(message))
+ onStatusChanged: {
+ if (socket.status == WebSocket.Error) {
+ appendMessage(qsTr("Client error: %1").arg(socket.errorString));
+ } else if (socket.status == WebSocket.Closed) {
+ appendMessage(qsTr("Client socket closed."));
+ }
+ }
+ }
+
+ Text {
+ id: messageBox
+ text: qsTr("Click to send a message!")
+ anchors.fill: parent
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ socket.sendTextMessage(qsTr("Hello Server!"));
+ }
+ }
+ }
+}
diff --git a/examples/websockets/qmlwebsocketserver/qmlwebsocketserver.pro b/examples/websockets/qmlwebsocketserver/qmlwebsocketserver.pro
new file mode 100644
index 0000000..a499c7e
--- /dev/null
+++ b/examples/websockets/qmlwebsocketserver/qmlwebsocketserver.pro
@@ -0,0 +1,13 @@
+QT += core qml quick websockets
+
+TARGET = qmlwebsocketserver
+
+TEMPLATE = app
+
+CONFIG -= app_bundle
+
+SOURCES += main.cpp
+
+RESOURCES += data.qrc
+
+OTHER_FILES += qml/qmlwebsocketserver/main.qml
diff --git a/examples/websockets/websockets.pro b/examples/websockets/websockets.pro
index 76a0e9f..e5eddf6 100644
--- a/examples/websockets/websockets.pro
+++ b/examples/websockets/websockets.pro
@@ -3,7 +3,11 @@ TEMPLATE = subdirs
SUBDIRS = echoclient \
echoserver \
simplechat
-qtHaveModule(quick): SUBDIRS += qmlwebsocketclient
+
+qtHaveModule(quick) {
+SUBDIRS += qmlwebsocketclient \
+ qmlwebsocketserver
+}
contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
SUBDIRS += \