Как изменить таймеры QWebsocket в Qt

У меня есть простое клиентское приложение (использующее QWebSocket) который хочет подключиться к моему серверному приложению (т.е. QWebSocketServer).

Когда я открываю соединение с webSocketServer, который отключен / недоступен, мой webSocket запускает сигнал «отключено» через 30 секунд.

Это хорошо, так как помогает мне понять, что сервер недоступен / недоступен, поэтому я могу повторить или предупредить пользователя о проблеме.

Если связь между клиентом и сервером не работает, происходит то же самое. т.е. после записи (sendBinaryMessage) в webSocket вызывает отключенный сигнал через 30 секунд.

Я хотел бы знать, какие таймеры по умолчанию в QWebSocket и как я могу их изменить?

Где я могу найти такую ​​информацию / документацию? В документации Qt по webSockets это поведение вообще не упоминается! Должен ли я прочитать код или …?!

заранее спасибо

2

Решение

От QWebSocket:

Этот класс был смоделирован после QAbstractSocket.

QAbstractSocket в свою очередь наследует от QIODevice,

Документация этих классов содержит некоторую информацию о тайм-аутах.
В частности, вы можете увидеть всплывающие 30 секунд по умолчанию здесь и там.

Другое место, чтобы посмотреть на это QObjectдокументация (QWebSocket наследует ее). Возможно, переопределив QObjectВиртуальные функции, связанные с таймером, вы можете каким-то образом получить между этими механизмами и, возможно, изменить время ожидания.

Извините, что не могу помочь.

0

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

Я сомневаюсь, что любой из этих таймеров является частью Qt; эти таймеры существуют как часть реализации TCP / IP базовой операционной системы. Сокет, ожидающий подключения к тайм-ауту, в конечном итоге выйдет из строя, если удаленный конец не ответит. То же самое, если отправленные данные не подтверждаются в течение разумного периода времени.

Qt, однако, делает все асинхронно и использует сигналы и слоты, чтобы уведомить вас, когда что-то произошло. Это означает, что если вы хотите сократить время ожидания, самый простой способ сделать это — использовать QTimer который работает параллельно с вами QAbstractSocketЕсли таймер истекает до того, как сокет сигнализирует о своем ответе, вы можете предпринять соответствующие действия.

В противном случае могут быть некоторые параметры сокетов, которые позволяют вам устанавливать различные таймауты в вашем TCP-соединении по своему вкусу.

0

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