@cameronwp/server-endpoint
v0.0.3
Published
Simplified server for socket.io messaging. See @cameronwp/client-endpoint.
Downloads
6
Readme
Server Endpoint
The server side of simplified socket.io messaging.
See also @cameronwp/client-endpoint.
npm i -S @cameronwp/server-endpoint
Sample Usage
All examples assume that on{message,request} handlers were set before any {message,request} were sent.
// server.js
const ServerEndpoint = require('@cameronwp/server-endpoint');
const port = 8000;
const server = new ServerEndpoint(port);
const namespace = server.createNamespace('chat'); // create as many namespaces as you want
// example server -> client push
namespace.pushMessage('new-message', 'lorem ipsum...');
// example client -> server post
namespace.onmessage('config-change', val => {
console.log(JSON.stringify(val)); // logs "{config: 'object'}"
});
// example server response to a request
namespace.onrequest('test-request', 'ack');
// example server responding to a request with a function
namespace.onrequest('test-request-doubler-function', data => {
return data * 2;
});
// client.js
const ClientEndpoint = require('@cameronwp/client-endpoint');
const client = new ClientEndpoint('http://localhost:8000/chat'); // note the port and "/chat" namespace
// example server -> client push
client.onmessage('new-message', val => {
console.log(val); // logs "lorem ipsum..."
});
// example client -> server post
client.postMessage('config-change', {config: 'object'});
// example server response to a request
client.request('test-request').then(console.log); // logs "ack"
// example server response to a request
client.request('test-request-doubler-function', 2).then(console.log); // logs 4
API
Classes
Typedefs
Namespace ⇐ Endpoint
Kind: global class Extends: Endpoint
- Namespace ⇐ Endpoint
new Namespace()
Wraps a namespaced socket.io server.
namespace.onconnection(cb)
Set onconnection handler when new clients join.
Kind: instance method of Namespace
| Param | Type | | --- | --- | | cb | socketCallback |
namespace.pushMessage(type, data) ⇒
Generic message sender. Difficult to promisify because it's sent to many listeners.
Kind: instance method of Namespace Returns: this
| Param | Type | | --- | --- | | type | string | | data | any |
namespace.onrequest(type, response)
Sets up request handlers.
Kind: instance method of Namespace
| Param | Type | Description | | --- | --- | --- | | type | string | | | response | any | If string or number, this method adds a handler to respond to client requests of type with the response of response. If response is a function, response is called when the request of type is received. |
ServerEndpoint
Kind: global class
new ServerEndpoint()
A factory for creating namespaced socket.io servers.
new ServerEndpoint(port)
Create a new ServerEndpoint.
Returns: this
| Param | Type | | --- | --- | | port | number |
serverEndpoint.createNamespace([name]) ⇒ Namespace
Create handlers for communications. Must create a namespace before ServerEndpoint is usable!
Kind: instance method of ServerEndpoint
| Param | Type | | --- | --- | | [name] | string |
ServerEndpoint
Kind: global class
new ServerEndpoint()
A factory for creating namespaced socket.io servers.
new ServerEndpoint(port)
Create a new ServerEndpoint.
Returns: this
| Param | Type | | --- | --- | | port | number |
serverEndpoint.createNamespace([name]) ⇒ Namespace
Create handlers for communications. Must create a namespace before ServerEndpoint is usable!
Kind: instance method of ServerEndpoint
| Param | Type | | --- | --- | | [name] | string |
socketCallback : function
Connection callback. Use socket.emit('message', data) to send data to client.
Kind: global typedef
| Param | Type | Description | | --- | --- | --- | | socket | socket | connection to client. |