Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/slact/nchan.js
NPM package for the Javasript client for Nchan
https://github.com/slact/nchan.js
Last synced: 10 days ago
JSON representation
NPM package for the Javasript client for Nchan
- Host: GitHub
- URL: https://github.com/slact/nchan.js
- Owner: slact
- License: other
- Created: 2016-12-16T17:39:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-07-24T18:19:55.000Z (over 6 years ago)
- Last Synced: 2024-10-16T06:40:00.073Z (21 days ago)
- Language: JavaScript
- Size: 56.6 KB
- Stars: 91
- Watchers: 10
- Forks: 25
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NchanSubscriber.js
A Websocket, EventSource, and Long-Polling wrapper for [Nchan](https://nchan.slact.net)
```js
// CommonJS
let NchanSubscriber = require("nchan");// you can also include the NchanSubscriber.js script directly in the browser.
// This will export NchanSubscriber as a global variable.var sub = new NchanSubscriber(url, opt);
//options
opt = {
subscriber: 'longpoll', 'eventsource', or 'websocket',
//or an array of the above indicating subscriber type preference
reconnect: undefined or 'session' or 'persist'
//if the HTML5 sessionStore or localStore should be used to resume
//connections interrupted by a page load
shared: true or undefined
//share connection to same subscriber url between browser
//windows and tabs using localStorage. In shared mode,
//only 1 running subscriber is allowed per url per window/tab.
}sub.on("transportSetup", function(opt, subscriberName) {
// opt is a hash/object - not all transports support all options equally. Only longpoll supports arbitrary headers
// subscriberName is a string
//
// longpoll transport supports;
// opt.longpoll.pollDelay - delay in milliseconds between successful requests
});sub.on("transportNativeCreated", function(nativeTransportObject, subscriberName) {
// nativeTransportObject is the native transport object and depends on the subscriber type
// subscriberName is a string
});sub.on("transportNativeBeforeDestroy", function(nativeTransportObject, subscriberName) {
// nativeTransportObject is the native transport object and depends on the subscriber type
// subscriberName is a string
});sub.on("message", function(message, message_metadata) {
// message is a string
// message_metadata is a hash that may contain 'id' and 'content-type'
});sub.on('connect', function(evt) {
//fired when first connected.
});sub.on('disconnect', function(evt) {
// when disconnected.
});
sub.on('error', function(error_code or evt, error_description) {
//error callback
});
sub.reconnect; // should subscriber try to reconnect? true by default.
sub.reconnectTimeout; //how long to wait to reconnect? does not apply to EventSource, which reconnects on its own.
sub.lastMessageId; //last message id. useful for resuming a connection without loss or repetition.sub.start(); // begin (or resume) subscribing
sub.stop(); // stop subscriber. do not reconnect.
```