【发布时间】:2015-07-28 00:40:18
【问题描述】:
我正在尝试使用带有 socket.IO 的 NodeJS 服务器和使用 socketIO-client 包用 python 2.7 编写的客户端构建一个简单的聊天应用程序。 js服务器在本地,非常简单:
io.on('connection', function(socket){
socket.on("chat_message", function(msg){
io.emit("chat_message", msg);
});
});
此聊天应用适用于在我的浏览器中打开的多个页面。 (来源来自:http://socket.io/get-started/chat/)
我想从 python 客户端连接这个服务器,我成功地从 python 发送到 js 服务器(在 python 客户端中输入的文本出现在浏览器中)。
问题如下: 当我在浏览器中输入一些文本时,Python 不会将其打印到 shell 中。
这是我在 python 端使用的代码:
def communicate(self, msg):
logging.debug('processing event : %s', msg)
self.socketIO.emit("chat_message", msg, self.on_chat_message)
def on_chat_message(self, *args):
output = ''
index = 0
for a in args:
output += ' | '+str(index)+' : '+str(a)
index += 1
logging.debug('processing server output : ' + output)
return
由于服务器向所有连接的客户端发送信息,python 通常应该将其处理到回调“on_chat_message”中,但是它不起作用。
我还尝试将 self.socketIO.wait_for_callbacks() 添加到 python,但没有成功。
如果有人知道我做错了什么,那就太好了 =D! 谢谢。
【问题讨论】:
标签: node.js sockets python-2.7 socket.io