You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.4 KiB

# isomorphic-ws
Isomorphic implementation of WebSocket.
It uses:
- [ws](https://github.com/websockets/ws) on Node
- [global.WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) in browsers
## Limitations
Before using this module you should know that
[`ws`](https://github.com/websockets/ws/blob/master/doc/ws.md#class-websocket)
is not perfectly API compatible with
[WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket),
you should always test your code against both Node and browsers.
Some major differences:
- no `Server` implementation in browsers
- no support for the constructor
[`options`](https://github.com/websockets/ws/blob/master/doc/ws.md#new-websocketaddress-protocols-options)
argument in browsers
## Usage
You need to install both this package and [ws](https://github.com/websockets/ws):
```
> npm i isomorphic-ws ws
```
Then just require this package:
```js
const WebSocket = require('isomorphic-ws');
const ws = new WebSocket('wss://echo.websocket.org/');
ws.onopen = function open() {
console.log('connected');
ws.send(Date.now());
};
ws.onclose = function close() {
console.log('disconnected');
};
ws.onmessage = function incoming(data) {
console.log(`Roundtrip time: ${Date.now() - data.data} ms`);
setTimeout(function timeout() {
ws.send(Date.now());
}, 500);
};
```
## License
[MIT](LICENSE)