android — программирование сокетов PHP: уникальный идентификатор ресурса для клиента и проверка клиента онлайн

Я новичок в программировании сокетов. Мне поручено разработать сервер сокетов 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 секунд с сервера каждому клиенту. если клиент не ответил на данные, это означает потерю соединения. есть ли другой способ?

Пожалуйста, помогите мне по моим вопросам

Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]