@@ -20,64 +20,83 @@ function websocket(dop, node, options) {
2020
2121 // We use this function as alias to store messages when connection is not OPEN
2222 function send ( message ) {
23- ( socket . readyState === socket . constructor . OPEN ) ? socket . send ( message ) : send_queue . push ( message ) ;
23+ ( socket . readyState === socket . constructor . OPEN && node . readyState === dop . CONS . CONNECT ) ?
24+ socket . send ( message )
25+ :
26+ console . log ( 'save' , message ) ;
2427 }
28+
29+ // This function emit all the queue messages
2530 function sendQueue ( message ) {
2631 while ( send_queue . length > 0 )
27- send ( send_queue . shift ( ) ) ;
32+ socket . send ( send_queue . shift ( ) ) ;
2833 }
2934
30- node . readyState = dop . CONS . CLOSE ;
31- node . reconnect = function ( ) {
32- oldSocket = node . socket ;
33- node . socket = node . options . transport . apply ( node , args ) ;
34- node . readyState = dop . CONS . RECONNECT ;
35- } ;
36- node . once ( dop . CONS . CONNECT , function ( ) {
37- node . readyState = dop . CONS . CONNECT ;
38- dop . core . emitConnect ( node ) ;
39- sendQueue ( ) ;
40- } ) ;
41- node . on ( dop . CONS . SEND , function ( message ) {
42- send ( message ) ;
43- } ) ;
44- node . on ( dop . CONS . DISCONNECT , function ( ) {
45- node . readyState = dop . CONS . CLOSE ;
46- socket . close ( ) ;
47- } ) ;
48-
49-
50-
51- socket . addEventListener ( 'open' , function ( ) {
35+ function onopen ( ) {
5236 // Reconnect
5337 if ( node . readyState === dop . CONS . RECONNECT ) {
54- send ( node . tokenServer ) ;
55- sendQueue ( ) ;
38+ socket . send ( node . tokenServer ) ;
5639 }
5740 // Connect
5841 else {
59- send ( ) ; // Empty means we want to get connected
42+ socket . send ( '' ) ; // Empty means we want to get connected
6043 node . readyState = dop . CONS . OPEN ;
6144 }
6245 dop . core . emitOpen ( node , socket , options . transport ) ;
63- } ) ;
64- socket . addEventListener ( 'message' , function ( message ) {
65- // Reconnecting
66- if ( message . data === node . tokenServer && node . readyState === dop . CONS . RECONNECT ) {
67- node . readyState = dop . CONS . CONNECT ;
68- dop . core . emitReconnectClient ( node , oldSocket ) ;
69- }
70- else
46+ }
47+ function onmessage ( message ) {
48+ // // Reconnecting
49+ // if (message.data===node.tokenServer && node.readyState===dop.CONS.RECONNECT) {
50+ // node.readyState = dop.CONS.CONNECT;
51+ // dop.core.emitReconnectClient(node, oldSocket);
52+ // sendQueue();
53+ // }
54+ // else
7155 dop . core . emitMessage ( node , socket , message . data , message ) ;
72- } ) ;
73- socket . addEventListener ( 'close' , function ( ) {
56+ }
57+ function onclose ( ) {
7458 dop . core . emitClose ( node , socket ) ;
59+ }
60+
61+
62+ node . readyState = dop . CONS . CLOSE ;
63+ // node.reconnect = function() {
64+ // oldSocket = socket;
65+ // node.socket = socket = new api(url);
66+ // addListeners(socket, onopen, onmessage, onclose);
67+ // removeListeners(oldSocket, onopen, onmessage, onclose);
68+ // node.readyState = dop.CONS.RECONNECT;
69+ // };
70+ node . on ( dop . CONS . CONNECT , function ( ) {
71+ node . readyState = dop . CONS . CONNECT ;
72+ dop . core . emitConnect ( node ) ;
73+ } ) ;
74+ node . on ( dop . CONS . SEND , function ( message ) {
75+ send ( message ) ;
76+ } ) ;
77+ node . on ( dop . CONS . DISCONNECT , function ( ) {
78+ node . readyState = dop . CONS . CLOSE ;
79+ socket . close ( ) ;
7580 } ) ;
7681
82+ addListeners ( socket , onopen , onmessage , onclose ) ;
7783
7884 return socket ;
7985} ;
8086
87+ function addListeners ( socket , onopen , onmessage , onclose ) {
88+ socket . addEventListener ( 'open' , onopen ) ;
89+ socket . addEventListener ( 'message' , onmessage ) ;
90+ socket . addEventListener ( 'close' , onclose ) ;
91+ }
92+ function removeListeners ( socket , onopen , onmessage , onclose ) {
93+ socket . removeEventListener ( 'open' , onopen ) ;
94+ socket . removeEventListener ( 'message' , onmessage ) ;
95+ socket . removeEventListener ( 'close' , onclose ) ;
96+ }
97+
98+
99+ // UMD
81100if ( typeof dop == 'undefined' && typeof module == 'object' && module . exports )
82101 module . exports = websocket ;
83102else {
@@ -88,4 +107,5 @@ else {
88107 root . dopTransportsConnectWebsocket = websocket ;
89108}
90109
110+
91111} ) ( this ) ;
0 commit comments