如何使用QWebSocket发送数组?

时间:2015-04-03 15:08:59

标签: arrays node.js qt websocket

我创建了一个客户端 - 服务器系统,包括:

  • node.js服务器(带模块ws);
  • 一个WebClient;
  • 一个QtClient(使用Qt5.4和QWebSocket)。

QtClient通过方法QWebSocket.sendTextMessage (QString s)发送和接收字符串。如何发送字符串数组?


其他信息:

WebClient使用JSON发送数组:

# index.html (WebClient)
    socket.onopen = function() {  
        var array = {
            value1: "WebClient value1 = v1", 
            value2: "WebClient value2 = v2"
        };
        socket.send(JSON.stringify(array), {binary: true, mask: false}); 
};

# server.js
socket.on('connection', function(ws) {
  ws.on('message', function(message) {
    var array = JSON.parse(message);
    console.log(array["value1"]);
    console.log( array["value2"]);
  });
});

# console node
C:\Users\PietroP\Desktop\cs\v0.3>node server.js
Server connect on http://192.168.1.60:3000/
a user connected
WebClient value1 : v1
WebClient value2 : v2

1 个答案:

答案 0 :(得分:2)

QWebSocket类没有直接实现发送数组。您可以发送二进制或短信。有关详细信息,请参阅: http://doc.qt.io/qt-5/qwebsocket.html

这是另一种方法:

您可以使用类似

之类的内容将数组转换为长字符串
str = array.toString() // This is psuedo code

在循环中并从发送方发送。然后在接收方,你可以使用诸如

之类的方法解析它
str.split(...);

希望嘻嘻!

编辑:您可能已经注意到:在您的示例代码中,JSON.stringify(数组)和JSON.parse(消息)所做的只不过是将数组转换为字符串,然后再将字符串解析为数组。