UNPKG

@openveo/api

Version:
95 lines (81 loc) 2.69 kB
'use strict'; /** * @module controllers/SocketController */ var util = require('util'); var Controller = process.requireApi('lib/controllers/Controller.js'); var AdvancedEmitter = process.requireApi('lib/emitters/AdvancedEmitter.js'); /** * Defines base controller for all controllers which need to handle socket messages. * * A SocketController is associated to a namespace to be able to emit a message to the * whole socket namespace. * * A SocketController is also associated to an emitter to emit socket's clients' messages to pilots. * * @example * // Implement a SocketController : "CustomSocketController" * var util = require('util'); * var openVeoApi = require('@openveo/api'); * * function CustomSocketController(namespace) { * CustomSocketController.super_.call(this, namespace); * } * * util.inherits(CustomSocketController, openVeoApi.controllers.SocketController); * * @class SocketController * @extends module:controllers/Controller~Controller * @constructor * @param {module:socket/SocketNamespace~SocketNamespace} namespace The socket namespace associated to the controller */ function SocketController(namespace) { SocketController.super_.call(this); Object.defineProperties(this, /** @lends module:controllers/SocketController~SocketController */ { /** * Socket's namespace associated to the controller. * * @type module:socket/SocketNamespace~SocketNamespace * @instance * @readonly */ namespace: {value: namespace}, /** * An emitter to emits clients' messages. * * @type module:emitters/AdvancedEmitter~AdvancedEmitter * @instance * @readonly */ emitter: {value: new AdvancedEmitter()} } ); } module.exports = SocketController; util.inherits(SocketController, Controller); /** * Handles a client's socket's connection. * * Socket has been established with a client. * * @param {Object} socket The socket (see {@link https://socket.io/docs/v4/server-socket-instance}) */ SocketController.prototype.connectAction = function(socket) {}; /** * Handles a client's socket's disconnection. * * Socket connection with a client has been lost. * * @param {Object} socket The socket (see {@link https://socket.io/docs/v4/server-socket-instance}) */ SocketController.prototype.disconnectAction = function(socket) {}; /** * Handles a client's socket's connection errors. * * An error occurred on socket's communication. * * @param {Object} socket The socket (see {@link https://socket.io/docs/v4/server-socket-instance}) */ SocketController.prototype.errorAction = function(error, socket) {};