Как я могу регистрировать пинги в OkHttpClient при настройке pingInterval?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу регистрировать пинги в OkHttpClient при настройке pingInterval?

Сообщение Anonymous »

Я использую OkHttpClient в качестве клиента WebSocket. Я поставил пинг каждые 10 секунд:

Код: Выделить всё

private val okHttpClient = OkHttpClient.Builder()
.pingInterval(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.addInterceptor(websocketInterceptor)
.build()

...

webSocket = okHttpClient.newWebSocket(request, object : WebSocketListener() {
override fun onOpen(webSocket: WebSocket, response: Response) {
Timber.d("Websocket connection opened, response: $response")
}
override fun onMessage(webSocket: WebSocket, text: String) {
Timber.d("Received: $text") // This callback works properly and I receive messages
}
Проблема в том, что наш сервер не обнаруживает пинги. Поэтому я ищу доказательства того, что пинги отправляются. Я пытался использовать для этого Interceptor:

Код: Выделить всё

class WebsocketAuthInterceptor() : Interceptor {

override fun intercept(chain: Chain): Response {
Timber.d("interceptor request: ${chain.request()}")
...
}
}
Но здесь ничего не протоколируется. Мои вопросы:
  • Как определить, что пинги отправляются от клиента?
  • Устанавливается .pingInterval (...) достаточно для отправки пингов на сервер при использовании WebSockets?


Подробнее здесь: https://stackoverflow.com/questions/791 ... nginterval
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»