python socket.io客户端无法接收广播消息
Posted
技术标签:
【中文标题】python socket.io客户端无法接收广播消息【英文标题】:python socket.io client can't receive broadcasting messages 【发布时间】:2018-06-26 09:41:47 【问题描述】:我正在构建一个 Socket.io 应用程序。
这是 Node.Js 服务器代码,在 AWS 实例中运行:
var server = require('http').createServer();
var io = require('socket.io')(server);
io.on('connection', function(client)
io.sockets.emit("welcome"); //This is received by everyone
client.on('message', function(msg)
console.log("message arrived"); //This is executed
io.sockets.emit("welcome"); //This is not received by Python Client
);
);
server.listen(8090);
我有不同的客户端,在网页上使用 javascript 运行,一个 Python 客户端在我的本地计算机上运行。
这是 Python 客户端:
from socketIO_client import SocketIO
socket_url = "http://xxxxxxxxxxxxxx.eu-central- 1.compute.amazonaws.com"
socketIO = SocketIO(socket_url, 8090, verify=False)
def welcome():
print('welcome received')
socketIO.on('welcome', welcome)
socketIO.wait(seconds=1)
while True:
pass
问题:
Python 客户端仅在套接字启动时收到“欢迎”,但当其他客户端向服务器发送“消息”,并将“欢迎”重新发送给所有客户端时,Python 客户端收不到。其他客户端收到这个特定的“欢迎”,所以问题出在 Python 客户端。
我正在为 Python 客户端使用https://pypi.python.org/pypi/socketIO-client。由于这个问题,Socket.io npm 版本 1.7.2 https://github.com/invisibleroads/socketIO-client/issues/159
【问题讨论】:
【参考方案1】:我发现了问题。 是这样的:
socketIO.wait(seconds=1)
SocketIO 仅响应 1 秒,因此 1 秒后到达的所有内容都将被忽略。
socketIO.wait()
解决问题
【讨论】:
以上是关于python socket.io客户端无法接收广播消息的主要内容,如果未能解决你的问题,请参考以下文章