1
1
/* global __resourceQuery */
2
2
var url = require ( 'url' ) ;
3
- var SockJS = require ( "sockjs-client" ) ;
4
3
var stripAnsi = require ( 'strip-ansi' ) ;
4
+ var socket = require ( './socket' ) ;
5
5
6
6
function getCurrentScriptSource ( ) {
7
7
// `document.currentScript` is the most accurate way to find the current script,
@@ -28,10 +28,8 @@ if(typeof __resourceQuery === "string" && __resourceQuery) {
28
28
urlParts = url . parse ( ( scriptHost ? scriptHost : "/" ) , false , true ) ;
29
29
}
30
30
31
- var sock = null ;
32
31
var hot = false ;
33
32
var initial = true ;
34
- var connected = false ;
35
33
var currentHash = "" ;
36
34
var logLevel = "info" ;
37
35
@@ -84,40 +82,21 @@ var onSocketMsg = {
84
82
for ( var i = 0 ; i < errors . length ; i ++ )
85
83
log ( "error" , stripAnsi ( errors [ i ] ) ) ;
86
84
if ( initial ) return initial = false ;
85
+ } ,
86
+ close : function ( ) {
87
+ log ( "error" , "[WDS] Disconnected!" ) ;
87
88
}
88
89
} ;
89
90
90
- var newConnection = function ( ) {
91
- sock = new SockJS ( url . format ( {
92
- protocol : ( window . location . protocol === "https:" || urlParts . hostname === '0.0.0.0' ) ? window . location . protocol : urlParts . protocol ,
93
- auth : urlParts . auth ,
94
- hostname : ( urlParts . hostname === '0.0.0.0' ) ? window . location . hostname : urlParts . hostname ,
95
- port : ( urlParts . port === '0' ) ? window . location . port : urlParts . port ,
96
- pathname : urlParts . path == null || urlParts . path === '/' ? "/sockjs-node" : urlParts . path
97
- } ) ) ;
98
-
99
- sock . onclose = function ( ) {
100
- if ( connected )
101
- log ( "error" , "[WDS] Disconnected!" ) ;
102
-
103
- connected = false ;
104
-
105
- // Try to reconnect.
106
- sock = null ;
107
- setTimeout ( function ( ) {
108
- newConnection ( ) ;
109
- } , 2000 ) ;
110
- } ;
111
-
112
- sock . onmessage = function ( e ) {
113
- connected = true ;
114
- // This assumes that all data sent via the websocket is JSON.
115
- var msg = JSON . parse ( e . data ) ;
116
- onSocketMsg [ msg . type ] ( msg . data ) ;
117
- } ;
118
- } ;
91
+ var socketUrl = url . format ( {
92
+ protocol : ( window . location . protocol === "https:" || urlParts . hostname === '0.0.0.0' ) ? window . location . protocol : urlParts . protocol ,
93
+ auth : urlParts . auth ,
94
+ hostname : ( urlParts . hostname === '0.0.0.0' ) ? window . location . hostname : urlParts . hostname ,
95
+ port : ( urlParts . port === '0' ) ? window . location . port : urlParts . port ,
96
+ pathname : urlParts . path == null || urlParts . path === '/' ? "/sockjs-node" : urlParts . path
97
+ } ) ;
119
98
120
- newConnection ( ) ;
99
+ socket ( socketUrl , onSocketMsg ) ;
121
100
122
101
function reloadApp ( ) {
123
102
if ( hot ) {
0 commit comments