blob: 30a78855c89a78a426f1ebd2c4af332a21c96df6 [file] [log] [blame]
Matteo Scandolobd13aab2017-08-08 13:05:24 -07001
2/*
3 * Copyright 2017-present Open Networking Foundation
4
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8
9 * http://www.apache.org/licenses/LICENSE-2.0
10
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18
Matteo Scandoloe3ed0162016-12-01 10:09:12 -080019(function () {
20 'use strict';
21
22 const clients = require('./clients.js');
23 const logger = require('../config/logger.js');
24
25 let io;
26
27 exports.create = function(server) {
28 // INSTANTIATE SOCKET.IO
29 // =============================================================================
30
31 io = require('socket.io').listen(server);
32
33 // LISTEN TO "CONNECTION" EVENT (FROM SOCKET.IO)
34 // =============================================================================
35
36 io.on('connection', function (socket) {
37 logger.log('debug', 'connect %j', socket.handshake.query);
38 clients.add(socket.handshake.query);
39
40 socket.emit('connected', {message : 'Welcome to XOS'});
41
42 socket.on('disconnect', function(reason) {
43 clients.remove(socket.handshake.query);
44 logger.log('debug', 'disconnect %s %j', reason, socket.handshake.query);
45 });
46 });
47
48 };
49
50 exports.get = () => io;
51
52 // USAGE
53 // const socketIo = require('./controllers/websocket.js');
54 // const socket = socketIo.get();
55 // socket.emit('eventName', data);
56
57})();