1

我正在尝试在我的网站上设置 PHP websockets。这在我的本地 WAMP 服务器上效果很好,但在我的网站上我不断收到警告:

无法绑定地址 [98]:地址已在使用中”

我尝试了各种库,但它们都返回此错误。

我的猜测是我使用的端口不是免费的。问题是,我无法访问终端,因为这是一个共享服务器(根据 phpinfo(),websockets 已启用,顺便说一句),所以我无法寻找空闲端口。还尝试使用端口 0 - 但没有运气。

提前致谢!

编辑:例如,这是一些使用https://github.com/Flynsarmy/PHPWebSocket-Chat的代码

// start the server
$Server = new PHPWebSocket();
$Server->bind('message', 'wsOnMessage');
$Server->bind('open', 'wsOnOpen');
$Server->bind('close', 'wsOnClose');
// 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($_SERVER['SERVER_ADDR'], 9300);

好吧,Bluehost 网站写道:“我们阻止对某些端口的访问,以帮助避免防火墙中存在安全漏洞……购买专用 IP 将使我们能够授予您访问运行特定服务所需的端口的权限。” . 技术支持人员告诉我不然。我猜案子已经结案了。谢谢大家的时间!

4

2 回答 2

0

talhof9 我在尝试配置我的共享托管服务时遇到了类似的痛苦,我没有找到一个直接的解决方案来获得一个共享的 *AMP 服务器来支持 WebSockets,但我找到了一个至少可以让你测试商业可行性的解决方法您正在整合的解决方案(如果这确实是您正在寻找的),而无需支付设置、配置和管理您自己的 VPS 的所有麻烦。

查看http://www.pusher.com以获取使用其 Node 服务器的简单 websocket 部署库。免费的沙盒版本让您可以尝试让它工作,一旦您想测试商业可行性,您可以升级到付费计划。

希望这可以帮助!

(注意我为 Pusher 工作)

于 2013-01-04T17:18:26.470 回答
-1

很可能您的托管服务提供商以某种方式禁用了 PHP 套接字。这是有道理的,因为 PHP 用于处理网页而不是创建守护进程,并且您可能正在使用常规的网络托管计划(而不是专用服务器)。

我会与您的托管服务提供商联系 - 支持论坛或打电话给他们。

于 2013-01-04T15:44:07.303 回答