Мой внутренний сервер (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
). Но я не могу использовать clientSocket
внутри ClientNameSpace
, так как он говорит, что он не определен. Я предполагаю, что класс активируется, как только конструктор SocketIO()
активируется, а clientSocket
не создается до тех пор, пока не будет.