我正在开发一个涉及websockets的Web开发项目。 使用wamp服务器,本地服务器上的所有东西都可以。
在线发生问题,专用服务器配置为websocket(php扩展已激活),我可以毫无问题地运行服务器。
然而,连接失败,客户端无法连接。这不是端口或防火墙的问题,客户端可以访问服务器但握手保持未完成。
我使用PHPWebSocket:
在Web服务器上没有大量关于websockets部署的文档,它在本地工作得非常好。
如果有人遇到同样的问题或者想知道出了什么问题......
答案 0 :(得分:0)
问题已解决
PHPwebsocket使用ID来区分客户端和相关的套接字。
所以,在$ this->阅读中,我们有一些情侣:
clientID =>插座
问题在于,函数socket_select不关心id。所以取决于实施......
本地(Windows)
输入: 输出: 在线(Debian) 输入: 输出: 在第二种情况下,关系不再存在,这会导致其余过程出现问题。 为了解决这个问题,我为重新定义的id添加了一个循环: 循环$ clientID设置为正确的值。{
0 => ressource #5,
1 => ressource #6
}
{
**1** => ressource #6
}
{
0 => ressource #5,
1 => ressource #6
}
{
**0** => ressource #6
}
foreach($this->wsRead as $id => $socket2){
if($socket2 ==$socket)
$clientID = $id;
}