1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* global io */
-
- /* Magic Mirror
- * TODO add description
- *
- * By Michael Teeuw https://michaelteeuw.nl
- * MIT Licensed.
- */
- const MMSocket = function (moduleName) {
- if (typeof moduleName !== "string") {
- throw new Error("Please set the module name for the MMSocket.");
- }
-
- this.moduleName = moduleName;
-
- // Private Methods
- let base = "/";
- if (typeof config !== "undefined" && typeof config.basePath !== "undefined") {
- base = config.basePath;
- }
- this.socket = io("/" + this.moduleName, {
- path: base + "socket.io"
- });
-
- let notificationCallback = function () {};
-
- const onevent = this.socket.onevent;
- this.socket.onevent = (packet) => {
- const args = packet.data || [];
- onevent.call(this.socket, packet); // original call
- packet.data = ["*"].concat(args);
- onevent.call(this.socket, packet); // additional call to catch-all
- };
-
- // register catch all.
- this.socket.on("*", (notification, payload) => {
- if (notification !== "*") {
- notificationCallback(notification, payload);
- }
- });
-
- // Public Methods
- this.setNotificationCallback = (callback) => {
- notificationCallback = callback;
- };
-
- this.sendNotification = (notification, payload) => {
- if (typeof payload === "undefined") {
- payload = {};
- }
- this.socket.emit(notification, payload);
- };
- };
|