【问题标题】:python SocketIO-client and nodejs socket.io server namespace mismatchpython SocketIO-client 和 nodejs socket.io 服务器命名空间不匹配
【发布时间】:2018-05-03 03:19:50
【问题描述】:

我的后端(nodejs)服务器通过var clients = io.of('/clients') 定义了一个新的命名空间。它看起来像这样:

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

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

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 命名空间中)。但是我不能在ClientNameSpace 中使用clientSocket,因为它说它没有定义。我假设一旦SocketIO() 构造函数被激活并且clientSocket 直到之后才被创建,该类就会被激活。

【问题讨论】:

    标签: python node.js socket.io namespaces


    【解决方案1】:

    我认为您的设置不正确。尝试在 clientSocket 上调用 emit ,而且我认为它需要定义至少一个回调,不确定是否仍然如此。所以定义一个clientSocket.on("方法名",callback);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-09
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多