Based on https://github.com/AngularClass/angular-websocket and migrated to Angular2
npm install angular2-websocketimport{$WebSocket}from'angular2-websocket/angular2-websocket'varws=new$WebSocket("url");ws.send(event);also ws.getDataStream() returns Subject to which you can attach an Observer (https://github.com/Reactive-Extensions/RxJS)
npm run typings
npm run compile
The default value for binary type is 'arrayBuffer'.
import{$WebSocket,WebSocketSendMode}from'angular2-websocket/angular2-websocket';// connectvarws=new$WebSocket("ws://127.0.0.1:7000");// you can send immediately after connect, // data will cached until connect open and immediately send or connect fail.// when connect fail, websocket will reconnect or not,// you can set {WebSocketConfig.reconnectIfNotNormalClose = true} to enable auto reconnect// all cached data will lost when connect close if not reconnect// set received message callbackws.onMessage((msg: MessageEvent)=>{console.log("onMessage ",msg.data);},{autoApply: false});// set received message streamws.getDataStream().subscribe((msg)=>{console.log("next",msg.data);ws.close(false);},(msg)=>{console.log("error",msg);},()=>{console.log("complete");});// send with default send mode (now default send mode is Observer)ws.send("some thing").subscribe((msg)=>{console.log("next",msg.data);},(msg)=>{console.log("error",msg);},()=>{console.log("complete");});ws.send("by default, this will never be sent, because Observer is cold.");ws.send("by default, this will be sent, because Observer is hot.").publish().connect();ws.setSendMode(WebSocketSendMode.Direct);ws.send("this will be sent Direct, because send mode is set to Direct.");ws.send("this will be sent and return Promise.",WebSocketSendMode.Promise).then((T)=>{console.log("is send");},(T)=>{console.log("not send");});ws.send("this will be sent and return Observer.").subscribe((msg)=>{console.log("next",msg.data);},(msg)=>{console.log("error",msg);},()=>{console.log("complete");});ws.close(false);// closews.close(true);// close immediatelyTo set the binary type for the websocket one can provide it as string in the constructor. Allowed types are:
- 'blob' (default)
- 'arraybuffer'
varws=new$WebSocket("ws://127.0.0.1:7000",null,null,'arraybuffer');