如何使用 QWebSocket 发送数组?

How to send an array using 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

QWebSocket class 没有直接实现发送数组。您可以发送二进制或文本消息。详情请参考: http://doc.qt.io/qt-5/qwebsocket.html

这是另一种方法:

您可以使用类似

的方式将数组转换为长字符串
str = array.toString() // This is psuedo code

循环并从发件人端发送。然后在接收方,您可以使用

等方法对其进行解析
str.split(...);

希望有所帮助!

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