@@ -24,8 +24,6 @@ defmodule Phoenix.Transports.WebSocket do
24
24
It may be set to `false` (not recommended) or to a list of explicitly
25
25
allowed origins
26
26
27
- * `:heartbeat` - the heartbeat interval in milliseconds, default `30_000`
28
-
29
27
* `:code_reloader` - optionally override the default `:code_reloader` value
30
28
from the socket's endpoint
31
29
@@ -44,9 +42,8 @@ defmodule Phoenix.Transports.WebSocket do
44
42
45
43
def default_config ( ) do
46
44
[ serializer: Phoenix.Transports.WebSocketSerializer ,
47
- timeout: :infinity ,
48
- transport_log: false ,
49
- heartbeat: 30_000 ]
45
+ timeout: 60_000 ,
46
+ transport_log: false ]
50
47
end
51
48
52
49
def handlers ( ) do
@@ -56,7 +53,6 @@ defmodule Phoenix.Transports.WebSocket do
56
53
## Callbacks
57
54
58
55
import Plug.Conn , only: [ fetch_query_params: 1 , send_resp: 3 ]
59
- import Phoenix.Utils , only: [ now_ms: 0 ]
60
56
61
57
alias Phoenix.Socket.Broadcast
62
58
alias Phoenix.Socket.Transport
@@ -100,24 +96,19 @@ defmodule Phoenix.Transports.WebSocket do
100
96
Process . flag ( :trap_exit , true )
101
97
serializer = Keyword . fetch! ( config , :serializer )
102
98
timeout = Keyword . fetch! ( config , :timeout )
103
- heartbeat = Keyword . fetch! ( config , :heartbeat )
104
99
105
100
if socket . id , do: socket . endpoint . subscribe ( self , socket . id , link: true )
106
101
107
- Process . send_after ( self , :phoenix_heartbeat , heartbeat )
108
102
109
103
{ :ok , % { socket: socket ,
110
104
channels: HashDict . new ,
111
105
channels_inverse: HashDict . new ,
112
- client_last_active: now_ms ( ) ,
113
- heartbeat_interval: heartbeat ,
114
106
serializer: serializer } , timeout }
115
107
end
116
108
117
109
@ doc false
118
110
def ws_handle ( opcode , payload , state ) do
119
111
msg = state . serializer . decode! ( payload , opcode: opcode )
120
- state = bump_client_last_active ( state )
121
112
122
113
case Transport . dispatch ( msg , state . channels , state . socket ) do
123
114
:noreply ->
@@ -150,23 +141,10 @@ defmodule Phoenix.Transports.WebSocket do
150
141
format_reply ( msg , state )
151
142
end
152
143
153
- def ws_info ( :phoenix_heartbeat , state ) do
154
- if client_unresponsive? ( state ) do
155
- { :shutdown , state }
156
- else
157
- Process . send_after ( self , :phoenix_heartbeat , state . heartbeat_interval )
158
- encode_reply Transport . heartbeat_message ( ) , state
159
- end
160
- end
161
-
162
144
def ws_info ( _ , state ) do
163
145
{ :ok , state }
164
146
end
165
147
166
- defp client_unresponsive? ( state ) do
167
- now_ms ( ) - state . client_last_active > ( state . heartbeat_interval * 2 )
168
- end
169
-
170
148
@ doc false
171
149
def ws_terminate ( _reason , _state ) do
172
150
:ok
@@ -197,10 +175,6 @@ defmodule Phoenix.Transports.WebSocket do
197
175
{ :reply , { encoding , encoded_payload } , state }
198
176
end
199
177
200
- defp bump_client_last_active ( state ) do
201
- % { state | client_last_active: now_ms ( ) }
202
- end
203
-
204
178
defp code_reload ( conn , opts , endpoint ) do
205
179
reload? = Keyword . get ( opts , :code_reloader , endpoint . config ( :code_reloader ) )
206
180
if reload? , do: Phoenix.CodeReloader . reload! ( endpoint )
0 commit comments