echo.io
Version:
A socket.io server implementation for laravel-echo
83 lines (65 loc) • 2.48 kB
JavaScript
;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ClientEvents = function () {
function ClientEvents(server) {
_classCallCheck(this, ClientEvents);
this.server = server;
}
/**
* Get an instance of the class.
*
* @return {ClientEvents}
*/
_createClass(ClientEvents, [{
key: 'handle',
/**
* Middleware handler.
*
* @param socket
* @param next
*/
value: function handle(socket, next) {
this.addListener(socket);
return next();
}
/**
* Add a new socket event listener.
*
* @param socket
*/
}, {
key: 'addListener',
value: function addListener(socket) {
var _this = this;
socket.on('client event', function (message) {
return _this.onclientmessage(socket, message);
});
}
/**
* When client event is emmitted.
*
* @param socket
* @param message
*
* @return {void}
*/
}, {
key: 'onclientmessage',
value: function onclientmessage(socket, _ref) {
var channel = _ref.channel,
event = _ref.event,
data = _ref.data;
if (socket.rooms && socket.rooms[channel]) {
this.server.onclientmessage(channel, { socket: socket, event: event, data: { channel: channel, data: data } });
}
}
}], [{
key: 'getInstance',
value: function getInstance(server) {
return new ClientEvents(server);
}
}]);
return ClientEvents;
}();
module.exports = ClientEvents;