Websockets在线部署

时间:2012-06-13 10:30:46

标签: php html5 websocket

我正在开发一个涉及websockets的Web开发项目。 使用wamp服务器,本地服务器上的所有东西都可以。

在线发生问题,专用服务器配置为websocket(php扩展已激活),我可以毫无问题地运行服务器。

然而,连接失败,客户端无法连接。这不是端口或防火墙的问题,客户端可以访问服务器但握手保持未完成。

我使用PHPWebSocket

在Web服务器上没有大量关于websockets部署的文档,它在本地工作得非常好。

如果有人遇到同样的问题或者想知道出了什么问题......

1 个答案:

答案 0 :(得分:0)

问题已解决

PHPwebsocket使用ID来区分客户端和相关的套接字。

所以,在$ this->阅读中,我们有一些情侣:

clientID =>插座

问题在于,函数socket_select不关心id。所以取决于实施......

本地(Windows)

输入:

{
0 => ressource #5,
1 => ressource #6
}

输出:

{
**1** => ressource #6
}

在线(Debian)

输入:

{
0 => ressource #5,
1 => ressource #6
}

输出:

{
**0** => ressource #6
}

在第二种情况下,关系不再存在,这会导致其余过程出现问题。

为了解决这个问题,我为重新定义的id添加了一个循环:

foreach($this->wsRead as $id => $socket2){
    if($socket2 ==$socket)
    $clientID = $id;
    }

循环$ clientID设置为正确的值。