У меня есть сервер websocket, написанный с трещоткой, и он хорошо работает, когда он связан с 127.0.0.1:5555. Однако мне нужно запустить дополнительный экземпляр сценария на том же компьютере, поэтому я попытался создать другой экземпляр, связанный с другим портом, но затем клиенты могут подключиться и подписаться на тему, но они не получают никаких данных, которые должен быть протолкнут через соединение. Я пробовал много разных портов и даже разные петли (127.0.0.1/8), но единственное, что, кажется, работает, это 127.0.0.1:5555. Как заставить работать другие порты или петли?
Экземпляр № 1, который работает:
// Listen for the web server to make a ZeroMQ push after an ajax request
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('127.0.0.1:5555'); // Binding to 127.0.0.1 means the only client that can connect is itself
$pull->on('message', array($pusher, 'onUpdate'));
// Set up our WebSocket server for clients wanting real-time updates
$webSock = new React\Socket\Server($loop);
$webSock->listen(8080, '0.0.0.0'); // Binding to 0.0.0.0 means remotes can connect
$webServer = new Ratchet\Server\IoServer(
new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
new Ratchet\Wamp\WampServer(
$pusher
)
)
), $webSock
);
$loop->run();
Экземпляр № 2, привязан к другому порту, который не работает:
// Listen for the web server to make a ZeroMQ push after an ajax request
$context = new React\ZMQ\Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('127.0.0.1:4444'); // Binding to 127.0.0.1 means the only client that can connect is itself
$pull->on('message', array($pusher, 'onUpdate'));
// Set up our WebSocket server for clients wanting real-time updates
$webSock = new React\Socket\Server($loop);
$webSock->listen(9090, '0.0.0.0'); // Binding to 0.0.0.0 means remotes can connect
$webServer = new Ratchet\Server\IoServer(
new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
new Ratchet\Wamp\WampServer(
$pusher
)
)
), $webSock
);
$loop->run();
Задача ещё не решена.
Других решений пока нет …