juggle-websocket
Version:
1 lines • 1.67 kB
JavaScript
!function(e){e.juggle||(e.juggle={});e.juggle.webSocketEventType=new function(){this.CONNECTED="connected",this.CLOSE="close",this.WSMESSAGE="wsmessage",this.getMessage=function(e){return this.WSMESSAGE+"_"+e}}}(window),function(e){e.juggle||(e.juggle={});e.juggle.webSocketConfig=new function(){this.WSOPCODE="wsOpCode"}}(window),function(e){e.juggle||(e.juggle={});var t=e.juggle.EventDispatcher,n=e.juggle.webSocketEventType,i=e.juggle.webSocketConfig;e.juggle.WebSocketClient=function(e){this.webSocket=null,this.isConnected=!1,this.url=e,this.connect=function(){this.webSocket=new WebSocket(this.url),this.onOpenListener(this,this.onOpen),this.onCloseListener(this,this.onClose),this.onErrorListener(this,this.onError),this.onMessageListener(this,this.onMessage)},this.onOpenListener=function(e,t){e.webSocket.onopen=function(n){t.call(e,n)}},this.onCloseListener=function(e,t){e.webSocket.onclose=function(n){t.call(e,n)}},this.onErrorListener=function(e,t){e.webSocket.onerror=function(n){t.call(e,n)}},this.onMessageListener=function(e,t){e.webSocket.onmessage=function(n){t.call(e,n)}},this.onOpen=function(e){this.isConnected=!0,this.dispatchEventWith(n.CONNECTED)},this.send=function(e){if(this.isConnected){var t=new Blob([JSON.stringify(e)]);this.webSocket.send(t)}else alert("未链接至websocket服务器")},this.onMessage=function(e){var t=JSON.parse(e.data);null!==t[i.WSOPCODE]&&void 0!==t[i.WSOPCODE]&&this.dispatchEventWith(n.getMessage(t[i.WSOPCODE]),!1,t)},this.onClose=function(e){this.isConnected=!1,this.dispatchEventWith(n.CLOSE)},this.onError=function(e){},this.close=function(){this.webSocket.close()},t.apply(this),this.connect()}}(window);