我是套接字编程的新手。我被指派开发PHP套接字服务器与多个客户端(android应用程序)进行通信。
我正在使用Ratchet- http://socketo.me/docs/hello-world来开发套接字。
1)当我连接客户端时,服务器为连接分配资源ID。我可以使用该资源ID向客户端发送数据。但在我断开连接并再次连接后,它会为该连接分配不同的资源ID。每次相同的客户端重新连接时是否可以使用相同的资源ID?
2)如果客户端断开连接,我可以从onClose函数方法
获取它public function onClose(ConnectionInterface $conn) {
// The connection is closed, remove it, as we can no longer send it messages
$this->clients->detach($conn);
echo "Connection {$conn->resourceId} has disconnected\n";
}
public function onError(ConnectionInterface $conn, \Exception $e) {
echo "An error has occurred: {$e->getMessage()}\n";
$conn->close();
}
何时调用onError方法?
3)如果由于互联网问题导致客户端连接丢失,服务器如何知道呢?我的想法是每30秒从服务器向每个客户端发送一些回声数据。如果客户端没有回复数据,则表示连接丢失。还有其他办法吗?
请帮我解决问题
由于