Ver código fonte

Add WebSocketService::setPingInterval

ithewei 2 anos atrás
pai
commit
4fd5bb0efa
2 arquivos alterados com 6 adições e 5 exclusões
  1. 2 2
      http/server/HttpHandler.cpp
  2. 4 3
      http/server/WebSocketServer.h

+ 2 - 2
http/server/HttpHandler.cpp

@@ -136,9 +136,9 @@ bool HttpHandler::SwitchWebSocket(hio_t* io) {
             break;
         }
     };
+    // NOTE: cancel keepalive timer, judge alive by heartbeat.
+    ws_channel->setKeepaliveTimeout(0);
     if (ws_service && ws_service->ping_interval > 0) {
-        // NOTE: cancel keepalive timer, judge alive by heartbeat.
-        ws_channel->setKeepaliveTimeout(0);
         int ping_interval = MAX(ws_service->ping_interval, 1000);
         ws_channel->setHeartbeat(ping_interval, [this](){
             if (last_recv_pong_time < last_send_ping_time) {

+ 4 - 3
http/server/WebSocketServer.h

@@ -20,9 +20,10 @@ struct WebSocketService {
     std::function<void(const WebSocketChannelPtr&)>                         onclose;
     int ping_interval;
 
-    WebSocketService() {
-        ping_interval = 0;
-        // ping_interval = 10000; // ms
+    WebSocketService() : ping_interval(0) {}
+
+    void setPingInterval(int ms) {
+        ping_interval = ms;
     }
 };