宣告 WebSocketServer
new QWebSocketServer("Web Server", QWebSocketServer::NonSecureMode, this)
使用 listen() 開始接受 client 連線
同樣是使用 newConnection() 接受新的 client 事件
使用 nextPendingConnection() 取得 client 的 socket
QWebSocket 使用 disconnected 斷線事件
因為 WebSocket 規範中有兩種資料傳送方式,純文字模式及二進制模式,
所以資料接收事件也分為兩種,分別為
textMessageReceived,參數為 QString message
binaryMessageReceived,參數為 QByteArray message
傳送資料也分為兩個函式,分別為
sendTextMessage
sendBinaryMessage
簡單範例
connect(m_pWebSocketServer, &QWebSocketServer::newConnection, [=]() {
qDebug() << "new client socket";
QWebSocket* socket = this->m_pWebSocketServer->nextPendingConnection();
connect(socket, &QWebSocket::disconnected, [=]() {
qDebug() << "client socket disconnected";
socket->deleteLater();
});
connect(socket, &QWebSocket::textMessageReceived, [=](QString message) {
qDebug() << "client textMessageReceived";
qDebug() << "Read: " << message;
qDebug() << "Send " << message;
socket->sendTextMessage(message);
socket->close();
});
connect(socket, &QWebSocket::binaryMessageReceived, [=](QByteArray message) {
qDebug() << "client processBinaryMessage";
qDebug() << "Read: " << message;
qDebug() << "Send " << message;
socket->sendBinaryMessage(message);
socket->close();
});
});
m_pWebSocketServer->listen(QHostAddress::Any, 8812);
資料來源
Echo Server Example
http://doc.qt.io/qt-5/qtwebsockets-echoserver-example.html
QWebSocketServer
http://doc.qt.io/qt-5/qwebsocketserver.html
2015年7月15日 星期三
2014年3月4日 星期二
WebSocket Server - Node.js
會有這一篇是想要試一下 HTML5 WebSocket 連線,本來是準備直接使用 www.websocket.org 的 Echo Test WebSocket Server,但是這個服務好像失效了,所以只好自己動手建立一個 WebSocket Server 嘍!
這次使用 Node.js 來建立一個 WebSocket Server,我們直接使用 ws 這個 Node.js 模組,ws 是一個 node.js 的 WebSocket 實作。
首先安裝好 Node.js,接著用 npm 安裝 ws 模組,然後使用這段程式碼:
上面是從官方範例小改一下的 echo server,將上面的程式碼存成 websocketserver.js 檔,然後在命令列輸入 node websocketserver.js 就可以啟動 WebSocketServer 嘍,很快速吧!
參考資料:
www.websocket.org
http://www.websocket.org/echo.html
ws: a node.js websocket implementation
http://einaros.github.io/ws/
這次使用 Node.js 來建立一個 WebSocket Server,我們直接使用 ws 這個 Node.js 模組,ws 是一個 node.js 的 WebSocket 實作。
首先安裝好 Node.js,接著用 npm 安裝 ws 模組,然後使用這段程式碼:
var WebSocketServer = require('ws').Server
, wss = new WebSocketServer({port: 8080});
wss.on('connection', function(ws) {
ws.on('message', function(message) {
console.log('received: %s', message);
ws.send(message);
});
});
上面是從官方範例小改一下的 echo server,將上面的程式碼存成 websocketserver.js 檔,然後在命令列輸入 node websocketserver.js 就可以啟動 WebSocketServer 嘍,很快速吧!
參考資料:
www.websocket.org
http://www.websocket.org/echo.html
ws: a node.js websocket implementation
http://einaros.github.io/ws/
訂閱:
文章 (Atom)