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
52
52
@connection .setNoDelay (true )
53
53
catch x
54
54
@ws .addEventListener (' message' , (m ) => @ didMessage (m .data ))
55
+ @ heartbeat_cb = => @ heartbeat_timeout ()
55
56
super @connection
56
57
57
58
setUp : ->
@@ -90,6 +91,18 @@ class WebSocketReceiver extends transport.GenericReceiver
90
91
@ws = null
91
92
@connection = null
92
93
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
+
93
106
94
107
95
108
Transport = transport .Transport
Original file line number Diff line number Diff line change @@ -163,7 +163,7 @@ class Session
163
163
x = =>
164
164
if @recv
165
165
@to_tref = setTimeout (x, @heartbeat_delay )
166
- @recv .doSendFrame ( " h " )
166
+ @recv .heartbeat ( )
167
167
@to_tref = setTimeout (x, @heartbeat_delay )
168
168
return
169
169
@@ -266,6 +266,9 @@ class GenericReceiver
266
266
utils .quote (m)
267
267
@ doSendFrame (' a' + ' [' + q_msgs .join (' ,' ) + ' ]' )
268
268
269
+ heartbeat : ->
270
+ @ doSendFrame (' h' )
271
+
269
272
270
273
# Write stuff to response, using chunked encoding if possible.
271
274
class ResponseReceiver extends GenericReceiver
You can’t perform that action at this time.
0 commit comments