0

我在使用 wamp 服务器 WAMPServer2.0 的开发 window7 pc 上使用 PHP WebSocket Server 0.2 ( http://code.google.com/p/php-websocket-server/ )。

  1. 我没有安装/激活任何 Apache 模块。
  2. 刚刚为 php 激活了 php_sockets 扩展。

我的套接字服务器在局域网上使用本地主机和局域网 IP 地址工作正常,但是当我在我的实时服务器上使用相同的设置实现相同的代码时,它不起作用。

在实时服务器上

  1. 执行“php socket-server.php”后没有错误。
  2. 但是当我尝试使用 javascript 连接到套接字服务器时,它没有连接。

我的实时服务器是 CENTOS 5.8、Apache/2.2.20、PHP/5.2.17。

我做错了什么?Apache 需要一些额外的模块吗?

- 编辑 -

现在联系支持启用端口 9300 后,但客户端仍然无法连接到服务器。

但是在服务器端我有一些活动,根据脚本客户端一旦连接就会断开连接。

在此处输入图像描述

- 编辑 -

相同的脚本在 vmware 上的http://www.turnkeylinux.org/lampstack中运行良好。

4

2 回答 2

0

看答案很简单

Javascript/Ajax 安全不支持跨域连接

请注意:如果您的服务器位于http://myserver.com并且您的脚本在http://myserver.com:9300上运行, 则 javascript 将理解这是一个不同的域。

如果您想这样做,请执行以下操作:

1-使用 apache 创建 http-proxy,您将在其中将“/live”转发到http://servers.com:9300 2-然后将您的 javascript 连接到 /live,apache 代理将完成这项工作。

如果您在创建代理时遇到困难,请搜索“openfire 的 apache 代理通行证”,您会找到一个很好的示例。

请注意,您需要 root 访问权限,或者您可以要求您的主机管理员为您添加此代理转发。

于 2012-10-07T10:36:14.790 回答
0

尝试使用具有最高详细级别的 curl 或 ncat 从命令行连接到您的 websocket 服务器。如果一切正常,我的意思是,您会收到 Upgrade 标头,而不是问题可能出在防火墙中。

您还可以使用 nmap,它可以帮助您确定在您尝试打开 websocket 连接的范围内是否有任何打开的端口。

同样在生产环境中,您应该将错误报告级别设置为 E_NONE。

顺便说一句,您有哪种实时服务器(VPS/VDS、专用等)?

于 2012-10-13T19:57:55.290 回答