python SocketIO-client和nodejs socket.io服务器命名空间不匹配

时间:2018-05-03 03:19:50

标签: python node.js socket.io namespaces

我的后端(nodejs)服务器通过System.loadLibrary("MyNative"); 定义新的命名空间。它看起来像这样:

var clients = io.of('/clients')

我的python客户端看起来像这样:

clients.on('connection', function(socket) {
    socket.on('descriptor', function(data) {
        // do something cool here
    }
});

运行此代码,服务器中的描述符方法永远不会被调用(我假设它不在from socketIO_client import SocketIO, class ClientNameSpace(BaseNamespace): def on_connect(self): logger.info("connected") socketIO.emit("descriptor", "some cool data") socketIO = SocketIO('127.0.0.1', 80) clientSocket = socketIO.define(ClientNameSpace, '/clients') socketIO.wait() 命名空间中)。但我不能在/clients内使用clientSocket,因为它没有定义。我假设一旦ClientNameSpace构造函数被激活就会激活该类,并且直到之后才会创建SocketIO()

1 个答案:

答案 0 :(得分:0)

我认为您的设置不正确。尝试改为在clientSocket上调用emit,而且我认为这是定义至少一个回调的要求,不确定是否仍然如此。因此,定义一个clientSocket.on(“方法名称”,回调);