6

几天前,我从http://code.google.com/p/phpwebsocket/设置了这个 WebSocket 服务器

通过使用 Xampp,它在我的本地主机上运行良好。然后,我将它上传到我在 Strato 上的网络空间,但现在我无法连接到服务器。

我将套接字连接更改为我的域,但它不起作用

客户端.html:

var host = "ws://xxxxxxxx.com:12345/Websocket/server.php";

服务器.php:

$master  = WebSocket("xxxxxx",12345);

我已经尝试过使用不同的端口(80,443,12345,8080,8000 ....),使用 server.php 中的 IP 地址而不是域。

我还在 client.html 中使用了绝对路径和相对路径。

从项目页面http://code.google.com/p/phpwebsocket/有人建议在 server.php 中使用 0 或 0.0.0.0,但这也不起作用。

在 client.html 中它只显示:

WebSocket - 状态 0 断开连接 - 状态 3

我猜这个问题是 Strato 阻止了我使用 WebSockets。是否可以在我的网络空间上运行 WebSockets?

4

2 回答 2

4

我敢打赌,您的主机正在阻止对套接字的传入请求。您不应该在 Web 服务中运行像 phpwebsocket 这样的脚本(它本身就是一个服务器)。这让很多人感到困惑,因为 PHP 通常用于编写网页脚本,而不是用于编码守护进程。

我这样说是因为您提到在 Xampp 中运行脚本,并将您的托管服务称为“网络空间”。

如果是这种情况,您将必须升级到虚拟服务器包,以便您可以运行自己的服务。

于 2012-12-08T20:09:53.573 回答
3

好的,到此结束。

我找到了使用我的 websockets 应用程序的解决方案,并且解释了为什么它在我的共享托管解决方案上不起作用。

我联系了 Strato,他告诉我他们不允许在共享主机上使用 Websocket。获得类似结果的唯一方法是使用 AJAX 长池化。

现在我购买了一个虚拟服务器,我的 websocket 应用程序现在运行良好。

谢谢你的支持。

于 2012-12-12T17:19:11.727 回答