XMPP 客户端接收服务器消息
XMPP client receiving server messages
我正在实施我的自定义 XMPP PHP 库 (Packagist repo),但我无法从 XMPP 服务器获取消息(客户端发送的消息)。
库正在使用 PHP 套接字连接到服务器,我能够在最初连接和验证时从服务器获取响应。我还可以从服务器向客户端发送消息,这部分工作。
但是我收不到消息。
这是我从服务器接收任何内容时使用的代码:
public function getRawResponse()
{
// Wait max 3 seconds before terminating the socket
socket_set_option($this->socket, SOL_SOCKET, SO_RCVTIMEO, ["sec" => $this->options->getSocketWaitPeriod(), "usec" => 0]);
while ($out = socket_read($this->socket, 2048)) {
echo "*** Data ***\n\n";
echo str_replace("><", ">\n<", $out) . "\n\n";
echo "\n\n************\n";
}
}
这个while
循环在这里从服务器获取所有一批响应,它在有东西要读的时候从服务器读取,否则它终止连接。
在主程序中,我正在执行 do{...}while(true)
并将此方法放入其中,以便它永远不会终止。但是当从客户端发送回服务器时,我仍然没有得到任何响应。
我发现我需要向服务器发送初始空状态节
<presence/>
收到服务器响应后,消息响应也开始传入。
我正在实施我的自定义 XMPP PHP 库 (Packagist repo),但我无法从 XMPP 服务器获取消息(客户端发送的消息)。
库正在使用 PHP 套接字连接到服务器,我能够在最初连接和验证时从服务器获取响应。我还可以从服务器向客户端发送消息,这部分工作。
但是我收不到消息。
这是我从服务器接收任何内容时使用的代码:
public function getRawResponse()
{
// Wait max 3 seconds before terminating the socket
socket_set_option($this->socket, SOL_SOCKET, SO_RCVTIMEO, ["sec" => $this->options->getSocketWaitPeriod(), "usec" => 0]);
while ($out = socket_read($this->socket, 2048)) {
echo "*** Data ***\n\n";
echo str_replace("><", ">\n<", $out) . "\n\n";
echo "\n\n************\n";
}
}
这个while
循环在这里从服务器获取所有一批响应,它在有东西要读的时候从服务器读取,否则它终止连接。
在主程序中,我正在执行 do{...}while(true)
并将此方法放入其中,以便它永远不会终止。但是当从客户端发送回服务器时,我仍然没有得到任何响应。
我发现我需要向服务器发送初始空状态节
<presence/>
收到服务器响应后,消息响应也开始传入。