我的网站通过 https(Using Let's Encrypt) 在共享主机上运行。它使用 Ratchet 实现 websocket,如下所示
$pusher = new qApp\Pusher;
$loop = React\EventLoop\Factory::create();
// 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('tcp://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, 'onNewCall'));
$webSock = new React\Socket\Server('0.0.0.0:1234', $loop); // Binding to 0.0.0.0 means remotes can connect
$webServer = new Ratchet\Server\IoServer(
new Ratchet\Http\HttpServer(
new Ratchet\WebSocket\WsServer(
$pusher
)
),
$webSock
);
$loop->run();
当客户端尝试连接时
var socket = new WebSocket('ws://localhost:1234');
在 localhost 上,它工作正常。
但是当使用 wss 在 Web 服务器上尝试相同时
var socket = new WebSocket('wss://domainname.com:1234');
它在 15-20 秒后超时。我在实施中有什么遗漏吗?