UNPKG

help-fem

Version:

A Browserify/Node.js client module for the Help.com team's FEM.

72 lines (59 loc) 1.38 kB
'use strict'; // This is a websocket server that is used to mock // femio calls. var Server = require('ws').Server; var uuid = require('uuid'); var Message = require('./message'); // Note, whoever requires this is responsible for closing // the server var wss = new Server({ port: 8000 }, function(err) { if (err) { throw err; } wss.isListening = true; }); wss.isListening = false; wss.clientId = uuid.v4(); module.exports = wss; wss.on('connection', function(ws) { ws.on('message', handleMessage); ws.on('error', console.error); }); wss.on('error', console.error) function handleMessage(msg) { msg = JSON.parse(msg); var type = msg.event; switch (type) { case 'client session event': handleSession(this, msg.message); break; case 'client chat event': handleChat(this, msg.message); break; default: console.log('unhandled event', msg); break; } } function handleSession(socket, msg) { var type = msg.meta.type; var m = new Message('server session event', { meta: { result: 'SUCCESS', type: type }, data: {} }, msg); socket.send(m.toJSON()); } function handleChat(socket, msg) { var type = msg.meta.type; var m = new Message('server chat event', { meta: { result: 'SUCCESS', type: type }, data: {} }, msg); socket.send(m.toJSON()); }