@parlour/parlour-client
Version:
The parlour websocket client
41 lines (39 loc) • 1.4 kB
JavaScript
import DebugTool from './debug-tool';
import Counter from './counter';
import ServerEvents from './server-events';
import SocketClient from './socket-client';
export default {
create: (params) => {
let socketClient;
function createMessageHandler() {
return {
[]: (client, event, topic, ref, payload) => {
// Debug.log('[Reply] ', topic, ref, payload);
socketClient.responseRef(ref, payload);
client.trigger('reply', [topic, event, payload]);
},
[]: (client, event, topic, ref, payload) => {
// Debug.log('[PresenceDiff] ', topic, ref, payload);
client.trigger('presence_diff', [topic, event, payload]);
},
[]: (client, event, topic, ref, payload) => {
// Debug.log('[PresenceState] ', topic, ref, payload);
client.trigger('presence_state', [topic, event, payload]);
},
'default': (client, event, topic, ref, payload) => {
// Debug.log('[Default] ', event, topic, ref, payload);
client.trigger('message', [topic, event, payload]);
},
};
}
const messageHandler = createMessageHandler();
socketClient = new SocketClient(Object.assign(params, {
messageHandler: messageHandler,
Debug: new DebugTool(),
refCounter: Counter.create(),
refJoinCounter: Counter.create(),
heartbeatInterval: 11000,
}));
return socketClient;
}
};