File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -52,6 +52,7 @@ class WebSocketReceiver extends transport.GenericReceiver
5252 @connection .setNoDelay (true )
5353 catch x
5454 @ws .addEventListener (' message' , (m ) => @ didMessage (m .data ))
55+ @ heartbeat_cb = => @ heartbeat_timeout ()
5556 super @connection
5657
5758 setUp : ->
@@ -90,6 +91,18 @@ class WebSocketReceiver extends transport.GenericReceiver
9091 @ws = null
9192 @connection = null
9293
94+ heartbeat : ->
95+ supportsHeartbeats = @ws .ping null , ->
96+ clearTimeout (hto_ref)
97+
98+ if supportsHeartbeats
99+ hto_ref = setTimeout (@heartbeat_cb , 10000 )
100+ else
101+ super
102+
103+ heartbeat_timeout : ->
104+ @session .close (3000 , ' No response from heartbeat' )
105+
93106
94107
95108Transport = transport .Transport
Original file line number Diff line number Diff line change @@ -163,7 +163,7 @@ class Session
163163 x = =>
164164 if @recv
165165 @to_tref = setTimeout (x, @heartbeat_delay )
166- @recv .doSendFrame ( " h " )
166+ @recv .heartbeat ( )
167167 @to_tref = setTimeout (x, @heartbeat_delay )
168168 return
169169
@@ -266,6 +266,9 @@ class GenericReceiver
266266 utils .quote (m)
267267 @ doSendFrame (' a' + ' [' + q_msgs .join (' ,' ) + ' ]' )
268268
269+ heartbeat : ->
270+ @ doSendFrame (' h' )
271+
269272
270273# Write stuff to response, using chunked encoding if possible.
271274class ResponseReceiver extends GenericReceiver
You can’t perform that action at this time.
0 commit comments