我使用 PHP Web 套接字编写了一个游戏,该游戏在我的本地开发服务器上运行良好。我现在尝试在非本地服务器上运行 Web 套接字服务器,但我的客户端 JavaScript 无法连接。我尝试在全新安装的 Ubuntu Server x64 上执行此操作 - 我已经安装了 apache2、php5,并确保启用了 PHP 套接字扩展;该服务器对于非 Web 套接字用途运行良好。
我是否遗漏了某个配置设置?我尝试关闭防火墙(通过ufw disable
)。如能提供任何线索,我将不胜感激。
编辑
这是我正在使用的 PHP 库:https://github.com/Flynsarmy/PHPWebSocket-Chat
我意识到我实际上并不需要 Apache 来完成我正在做的事情 - 我只需要 PHP 接受和解释传入的请求。有没有办法确保我的 PHP 程序可以访问所有传入的请求?
答案1
您是否在使用 Apache 模块进行 websocket 通信?有不少 PHP websocket 服务器可供您尝试。以下是一些:http://www.spoutserver.com/,http://code.google.com/p/phpwebsocket/,http://socketo.me/。如果你仔细看看,还会发现更多。如果你提供有关环境和实施的更多详细信息,帮助会更容易。
更新:
更改第 62 行https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php到
$服务器->wsStartServer('0.0.0.0', 9300);
或者将 IP 改为外部 LAN IP 即可。更改后重新启动 server.php。
答案2
据我所知,Ubuntu 提供的 Apache 软件包不支持 websockets,并且 Precise Pangolin 中没有mod_websocket.so
包含Apache 模块提供对 websockets 的支持。您需要手动安装该模块,或者更改生产环境以使用与开发环境相同的 web 服务器。