Я новичок в программировании сокетов. Мне поручено разработать сервер сокетов PHP для связи с несколькими клиентами (приложения для Android).
Я использую Ratchet- http://socketo.me/docs/hello-world разработать сокет.
1) Когда я подключаю клиента, сервер назначает идентификатор ресурса для подключения. Я могу отправить данные клиенту, используя этот идентификатор ресурса. Но после того, как я отключаюсь и подключаюсь снова, это назначает другой идентификатор ресурса этому соединению. Можно ли использовать один и тот же идентификатор ресурса каждый раз, когда один и тот же клиент переподключается?
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 секунд с сервера каждому клиенту. если клиент не ответил на данные, это означает потерю соединения. есть ли другой способ?
Пожалуйста, помогите мне по моим вопросам
Спасибо
Задача ещё не решена.
Других решений пока нет …