Node.js 如何在python客户机上从nodeJS服务器获取响应
我正在尝试使用带有socket.IO的NodeJS服务器和使用socketIO客户端包以python 2.7编写的客户端构建一个简单的聊天应用程序。 js服务器位于本地,非常简单:Node.js 如何在python客户机上从nodeJS服务器获取响应,node.js,sockets,python-2.7,socket.io,Node.js,Sockets,Python 2.7,Socket.io,我正在尝试使用带有socket.IO的NodeJS服务器和使用socketIO客户端包以python 2.7编写的客户端构建一个简单的聊天应用程序。 js服务器位于本地,非常简单: io.on('connection', function(socket){ socket.on("chat_message", function(msg){ io.emit("chat_message", msg); }); }); 此聊天应用适用于在我
io.on('connection', function(socket){
socket.on("chat_message", function(msg){
io.emit("chat_message", msg);
});
});
此聊天应用适用于在我的浏览器中打开的多个页面。
(来源:)
我想从一个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\u for\u回调()添加到python中,但没有成功
如果有人知道我做错了什么,那就太好了!
谢谢。我终于在python客户端上从服务器获得了响应 我的错误是没有“等待”socketIO变量,所以我没有得到任何反馈 为了正确处理服务器响应,我使用绑定到套接字的BaseNamespace类,并处理基本事件:重写函数on_event
def on_event(self, event, *args):
#Catch your event and do stuff
如果某个事件由类处理,则会引发一个标志并由客户端进行检查
def communicate(self, msg):
self.socketIO.emit('chat_message', msg)
def wait_for_server_output(self):
while(1):
self.socketIO.wait(seconds=1)
ns = self.socketIO.get_namespace()
if ns.flag.isSet():
data = ns.data_queue.get()
ns.flag.clear()
这两个函数由客户端代码中的两个线程管理
希望这能有所帮助()