File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed
Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -108,6 +108,10 @@ import Timer from "./timer"
108108 * removeItem(keyName) { delete this.storage[keyName] }
109109 * setItem(keyName, keyValue) { this.storage[keyName] = keyValue }
110110 * }
111+ *
112+ * @param {boolean } [opts.disableAutoDisconnectOnPageHide] - Boolean that determines if window event listeners should be active
113+ *
114+ * Defaults to false.
111115 *
112116*/
113117export default class Socket {
@@ -139,7 +143,8 @@ export default class Socket {
139143 this . decode = this . defaultDecoder
140144 }
141145 let awaitingConnectionOnPageShow = null
142- if ( phxWindow && phxWindow . addEventListener ) {
146+ this . disableAutoDisconnectOnPageHide = opts . disableAutoDisconnectOnPageHide || false
147+ if ( ! this . disableAutoDisconnectOnPageHide && phxWindow && phxWindow . addEventListener ) {
143148 phxWindow . addEventListener ( "pagehide" , _e => {
144149 if ( this . conn ) {
145150 this . disconnect ( )
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ describe("with transports", function (){
3939 expect ( socket . longpollerTimeout ) . toBe ( 20000 )
4040 expect ( socket . heartbeatIntervalMs ) . toBe ( 30000 )
4141 expect ( socket . logger ) . toBeNull ( )
42+ expect ( socket . disableAutoDisconnectOnPageHide ) . toBe ( false )
4243 expect ( socket . binaryType ) . toBe ( "arraybuffer" )
4344 expect ( typeof socket . reconnectAfterMs ) . toBe ( "function" )
4445 } )
@@ -64,6 +65,7 @@ describe("with transports", function (){
6465 logger : customLogger ,
6566 reconnectAfterMs : customReconnect ,
6667 params : { one : "two" } ,
68+ disableAutoDisconnectOnPageHide : true
6769 } )
6870
6971 expect ( socket . timeout ) . toBe ( 40000 )
@@ -72,6 +74,7 @@ describe("with transports", function (){
7274 expect ( socket . transport ) . toBe ( customTransport )
7375 expect ( socket . logger ) . toBe ( customLogger )
7476 expect ( socket . params ( ) ) . toEqual ( { one : "two" } )
77+ expect ( socket . disableAutoDisconnectOnPageHide ) . toBe ( true )
7578 } )
7679
7780 describe ( "with Websocket" , function ( ) {
You can’t perform that action at this time.
0 commit comments