Working gateway

Change-Id: I8ca690fe9d1b7f8e20b438df1ddd48d6b2f99326
diff --git a/src/controllers/websocket.js b/src/controllers/websocket.js
new file mode 100644
index 0000000..e048419
--- /dev/null
+++ b/src/controllers/websocket.js
@@ -0,0 +1,39 @@
+(function () {
+  'use strict';
+
+  const clients = require('./clients.js');
+  const logger = require('../config/logger.js');
+
+  let io;
+
+  exports.create = function(server) {
+    // INSTANTIATE SOCKET.IO
+    // =============================================================================
+
+    io = require('socket.io').listen(server);
+
+    // LISTEN TO "CONNECTION" EVENT (FROM SOCKET.IO)
+    // =============================================================================
+
+    io.on('connection', function (socket) {
+      logger.log('debug', 'connect %j', socket.handshake.query);
+      clients.add(socket.handshake.query);
+
+      socket.emit('connected', {message : 'Welcome to XOS'});
+
+      socket.on('disconnect', function(reason) {
+        clients.remove(socket.handshake.query);
+        logger.log('debug', 'disconnect %s %j', reason, socket.handshake.query);
+      });
+    });
+
+  };
+
+  exports.get = () => io;
+
+  // USAGE
+  // const socketIo = require('./controllers/websocket.js');
+  // const socket = socketIo.get();
+  // socket.emit('eventName', data);
+
+})(); 
\ No newline at end of file