我在客户端脚本和服务器之间没有Websocket连接。
在我的本地环境中它正常工作。
同时,我正在遵循这个链接。
这是一个初始化websocket服务器并监听客户端连接到8080
端口的服务器脚本。
public function run()
{
$loop = Factory::create();
$pusher = new Pusher;
$context = new 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, 'onBlogEntry'));
// Set up our WebSocket server for clients wanting real-time updates
$webSock = new Server('0.0.0.0:8080', $loop); // Binding to 0.0.0.0 means remotes can connect
$webServer = new IoServer(
new HttpServer(
new WsServer(
new WampServer(
$pusher
)
)
),
$webSock
);
$loop->run();
以下是客户端脚本:
var conn = new ab.Session('ws://localhost:8080',
function() {
/* subscribe to following topics */
conn.subscribe('new_order', function(topic, data) ..
再次强调,这在本地环境中运行良好。
另外需要注意的是,我的应用程序是使用 Docker 容器中指定的端口进行托管的。
http://192.168.12.52:8094/xyz/new/....
我也尝试在客户端脚本中指定IP地址:
var conn = new ab.Session('ws://192.168.12.52:8080',
function() {
/* subscribe to following topics */
conn.subscribe('new_order', function(topic, data) ...
在某些情况下,我会遇到以下错误:
WebSocket connection to 'ws://192.168.11.32:8080/' failed: Error during WebSocket handshake: Unexpected response code: 403
这里缺少什么?