https://github.com/afrad/angular2-websocket
Websocket wrapper for angular2 based on angular-websocket
https://github.com/afrad/angular2-websocket
angular websockets
Last synced: 2 months ago
JSON representation
Websocket wrapper for angular2 based on angular-websocket
- Host: GitHub
- URL: https://github.com/afrad/angular2-websocket
- Owner: afrad
- License: apache-2.0
- Created: 2016-01-09T15:20:20.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-02-12T14:41:45.000Z (about 7 years ago)
- Last Synced: 2025-10-21T05:22:09.895Z (5 months ago)
- Topics: angular, websockets
- Language: TypeScript
- Homepage:
- Size: 61.5 KB
- Stars: 208
- Watchers: 18
- Forks: 84
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# angular2websocket
Based on https://github.com/AngularClass/angular-websocket and migrated to Angular2
## Installation
```bash
npm install angular2-websocket
```
## Usage:
```ts
import {$WebSocket} from 'angular2-websocket/angular2-websocket'
var ws = new $WebSocket("url");
ws.send(event);
```
also
ws.getDataStream() returns Subject to which you can attach an Observer (https://github.com/Reactive-Extensions/RxJS)
## Compilation
```bash
npm run typings
npm run compile
```
The default value for binary type is 'arrayBuffer'.
## example
```ts
import {$WebSocket, WebSocketSendMode} from 'angular2-websocket/angular2-websocket';
// connect
var ws = 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 callback
ws.onMessage(
(msg: MessageEvent)=> {
console.log("onMessage ", msg.data);
},
{autoApply: false}
);
// set received message stream
ws.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); // close
ws.close(true); // close immediately
```
## Binary type
To set the binary type for the websocket one can provide it as string in the constructor. Allowed types are:
* 'blob' (default)
* 'arraybuffer'
```ts
var ws = new $WebSocket("ws://127.0.0.1:7000", null, null, 'arraybuffer');
```