UNPKG

devir-mbclient

Version:

MB client

98 lines (77 loc) 3.7 kB
/** * Created by mac on 17.09.15. */ var shortid = require("shortid"); var EventEmitter = require('events').EventEmitter; var messageFactory = require("devir-mbcommon").messageFactory; var request = require("devir-mbcommon").request; module.exports = function(params, onRequest, onConnected){ var internalEvents = new EventEmitter(); var _connector; var registerConnector = function(connector,remoteAddress, remotePort){ _connector = new connector(remoteAddress, remotePort, onData, onConnected) _connector.connect(); } var onData = function(dataString){ var gotObject = JSON.parse(dataString); if (gotObject.requestType) { if (gotObject.requestType == "request") { onRequest(new request(gotObject.requestId, gotObject.route, gotObject.payload, sendResponse)); } else if (gotObject.requestType == "response") { internalEvents.emit('resp:' + gotObject.requestId, gotObject.payload); } else if (gotObject.requestType == "responseError") { gotObject.payload.isError = true; internalEvents.emit('resp:' + gotObject.requestId, gotObject.payload); } else if (gotObject.requestType == "event") { internalEvents.emit('event:' + gotObject.eventname, gotObject.payload); } } } var sendRequest = function(requestId,route, payload) { _connector.send(messageFactory.getRequestMessage(requestId, route, payload)); } var sendResponse = function(requestId, payload){ _connector.send(messageFactory.getResponseMessage(requestId, payload)); } var sendRegisterService = function(id, routes){ _connector.send(messageFactory.getRegisterServiceMessage(id, routes)); } var sendRegisterEvent = function(requestId, name){ _connector.send(messageFactory.getRegisterEventMessage(requestId, name)); } var sendRegisterQueue = function(requestId, name, isPersist, maxVolume){ _connector.send(messageFactory.getRegisterQueueMessage(requestId, name, isPersist, maxVolume)); } var sendSubscribeToEvent = function(requestId, name){ _connector.send(messageFactory.getSubscribeToEventMessage(requestId, name)); } var sendUnsubscribeFromEvent = function(requestId, name){ _connector.send(messageFactory.getUnsubscribeFromEventMessage(requestId, name)); } var sendFireEvent = function(requestId, name, payload){ _connector.send(messageFactory.getFireEventMessage(requestId,payload, name)); } var sendSubscribeToQueueChange = function(requestId, name){ _connector.send(messageFactory.getSubscribeToQueueChangeMessage(requestId,name)); } var sendPushToQueue = function(requestId, name, payload){ _connector.send(messageFactory.getPushToQueueMessage(requestId,name,payload)); } var sendPopFromQueue = function(requestId, name){ _connector.send(messageFactory.getPopFromQueueMessage(requestId,name)); } return { events: internalEvents, registerConnector: registerConnector, sendRequest: sendRequest, sendRegisterService: sendRegisterService, sendRegisterQueue: sendRegisterQueue, sendSubscribeToQueueChange: sendSubscribeToQueueChange, sendPushToQueue: sendPushToQueue, sendPopFromQueue: sendPopFromQueue, sendRegisterEvent:sendRegisterEvent, sendSubscribeToEvent: sendSubscribeToEvent, sendUnsubscribeFromEvent: sendUnsubscribeFromEvent, sendFireEvent:sendFireEvent } }