我已经写了一个基于这个库的PHP websockets服务器: https : //github.com/Flynsarmy/PHPWebSocket-Chat
该库作为服务器运行,处理所有传入的请求。 客户端可以在本地运行时连接(连接到地址127.0.0.1:9300 ),但如果我的客户端不在运行服务器的计算机上,则无法连接。 我试过关掉防火墙, 是否有另一个特权,我需要授予PHP,以便它能够接收和响应websocket通信?
我正在运行PHP5,Ubuntu Server 12.04 LTS,并与Google Chrome(最新)连接。
From line 62 of https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php
//对于其他计算机连接,您可能需要更改/ /您的LAN IP或外部IP,或者使用:gethostbyaddr(gethostbyname($ _ SERVER ['SERVER_NAME']))
$ Server-> wsStartServer('127.0.0.1',9300);
改变这一行,
$Server->wsStartServer('0.0.0.0', 9300);
或IP到您的LAN IP并尝试。
文件server.php包含你的问题的答案
// for other computers to connect, you will probably need to change this to your LAN IP or external IP, // alternatively use: gethostbyaddr(gethostbyname($_SERVER['SERVER_NAME'])) $Server->wsStartServer('127.0.0.1', 9300);
将最后一行更改为服务器的公共IP地址可能会解决您的问题。
只需编辑server.php; 现在它只监听环回[$ Server-> wsStartServer('127.0.0.1',9300); ]。 将其更改为监听所有ips [0.0.0.0?]或至less一个分配给networking接口的ip [eth0? ]你的服务器。