Create websokcet extensions to speed up your development process when working with the websocket utility library. It is both easy and fun.
And if you create something you think is useful for others, share it.
Expand functionality by adding additional handlers.
Say we want to create a simple logger for our application
In our /lib/wsLogger.js
file we could add our logger
var ws = require('/lib/wsUtil');
var http = require('/lib/xp/http-client');
ws.expand({ 'logger': logger});
exports.logger = ws;
function logger() {
ws.addHandlers('open', function(e) {
http.request({
method: 'POST',
body: JSON.stringify({ logItem: e, event: 'open', ts: Date.now() }),
... // Additional request params
});
})
... // Additional handlers
}
Use
// service/websocket
var wsl = require('logger').logger;
wsl.logger();
wsl.openWebsockets();
Expand the client library
var ws = require('/lib/wsUtil');
ws.expandClient('hello', hello);
function hello() {
send("Hello");
}
Use on client side
var ws = new EnonicXP.Ws();
ws.hello();
Expand expansions
var wsl = require('/logger').logger;
wsl.expand({loggerExpansion: someExpansion});
exports.someExpansion = wsl;
Join expansions
// lib/abExpansion.js
var a = require('expansionA').a;
var b = require('expansionB').b;
var exp = {};
for (var name in a) {
if (a.hasOwnProperty(name) && !b.hasOwnProperty(name)) {
exp[name] = a[name]; // add whats in a but not b
}
}
b.expand(exp); // join a with b
exports.ab = b;