2013-01-04 45 views
1

我试图在我的网站上设置PHP websockets。这工作我的本地WAMP的服务器上伟大的,但在我的网站,我不断收到一个警告:PHP websockets - 已在使用的地址

无法绑定地址[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将允许我们授予您访问运行特定服务所需的端口的权限。“技术支持人员否则告诉我。我猜这个案子已经关闭了。谢谢大家的时间!

+0

通常你必须是特权用户使用低于10000的端口,因为它是共享的主机,它不可能你有特权,所以我想这是有可能得到该错误消息。尝试10000以上的端口,看看它是否工作。 – Cfreak

+0

我得到了同样的错误:'( – talhof9

+0

有多达65,535个端口,较低数字中的任何内容都可能正在使用中,您尝试过多少次?尝试大量40000以上的随机端口以查看是否仍然出现错误。 – MrCode

回答

0

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

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

+0

即使phpinfo()表示套接字已启用? – talhof9

+0

它可能是防火墙封锁。即使你设法建立一个套接字和一个守护进程,最终他们也会发现并停止你的脚本。 另外,请检查了这一点:http://stackoverflow.com/questions/13778056/php-websocket-on-webserver – Plamen

+0

那么,他们说fsockopen也适用于共享服务器。不知道是什么意思 – talhof9

0

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

检出http://www.pusher.com为一个简单的websocket部署库,它使用他们的节点服务器。免费的沙盒版本可以让你玩转它,并且一旦你想测试商业可行性,你可以升级到付费计划。

希望这会有所帮助!

(注意我为推不工作)

+0

好吧,谢谢:) – talhof9