我有一种情况,我有一个python客户端尝试使用SocketIO向服务器发送消息。我使用sock.emit发送json消息,如下所示
sock = SocketIO(url, None, ...)
message = {'ob': 'house',
'ids': ['54fjadb70f9756','39f1ax451f6567']}
self.sock.emit(message)
服务器需要以下内容:
{"ob":"house","ids":['54fjadb70f9756','39f1ax451f6567']}
服务器当前收到以下消息:
{"args": [], "name": "{\"ids\": [\"54fjadb70f9756\", \"39f1ax451f6567\"], \"ob\": \"house\"}"}
然后抱怨无效的消息。
如何发送消息以便服务器按预期接收消息,即我指定的原始消息结构?当我发送它时,似乎emit正在改变消息的结构,是否有可能覆盖并更改发射以保留原始消息结构?我是怎么做到的?
答案 0 :(得分:0)
Socket.io .emit()
有两个参数。第一个参数是一个消息名称,它应该是一个普通的字符串。第二个参数是可选的,可以是JSON编码数据的数据。
因此,您尝试将数据作为消息名称发送。那样不行。您需要创建消息名称并将数据作为该消息名称的参数发送。
sock = SocketIO(url, None, ...)
message = {'ob': 'house',
'ids': ['54fjadb70f9756','39f1ax451f6567']}
sock.emit("someMessageName", message)
然后,在服务器上,您需要拥有该特定消息名称的侦听器,然后您可以在调用该消息侦听器时接收数据。