授予 PHP 发送/接收请求的权限

授予 PHP 发送/接收请求的权限

我已经基于这个库编写了一个 PHP websockets 服务器:https://github.com/Flynsarmy/PHPWebSocket-Chat

此库作为服务器运行,并处理所有传入请求。当我在本地运行时(连接到地址127.0.0.1:9300),客户端可以连接,但如果我的客户端不在运行服务器的计算机上,则无法连接。我尝试关闭防火墙;我是否需要授予 PHP 其他权限,以便它能够接收和响应 websocket 通信?

我正在运行 PHP5、Ubuntu Server 12.04 LTS,并连接 Google Chrome(最新版)。

答案1

 From line 62 of https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php

// 为了便于其他计算机连接,您可能需要将其更改为您的 LAN IP 或外部 IP,或者使用:gethostbyaddr(gethostbyname($_SERVER['SERVER_NAME']))

$服务器->wsStartServer('127.0.0.1', 9300);

将此行更改为,

 $Server->wsStartServer('0.0.0.0', 9300);

或将 IP 改为您的 LAN IP 并尝试。

答案2

该文件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 地址可能会解决您的问题。

答案3

只需编辑 server.php ;现在它只监听环回 [ $Server->wsStartServer('127.0.0.1', 9300); ]。将其更改为监听所有 ip [0.0.0.0?] 或至少一个分配给服务器网络接口 [ eth0? ] 的 ip。

相关内容