'use strict';
var loopback = require('loopback');var boot = require('loopback-boot');var wsServer = require("./websockets");
var app = module.exports = loopback();
.
.
.
// Bootstrap the application, configure models, datasources and middleware.// Sub-apps like REST API are mounted via boot scripts.boot(app, __dirname, function (err) { if (err) throw err;
// start the server if `$ node server.js` if (require.main === module) {
//Default //app.start();
//Add WebSockets server wsServer.listen(app.start(), app); }});
exports.listen = function (server, app) { var wss = new WebSocketServer({ server: server });
console.info('WebSocket server started...');
wss.on("connection", function (ws) { var reqURL = url.parse(ws.upgradeReq.url, true);
console.log("Request From WebSockets Client"); console.log(reqURL);
//Operation hooks //Trigered every time the property is modified (created, updated) var ParkingLot = app.models.ParkingLot; ParkingLot.observe("before save", function changes (ctx, next) { var data; if (ctx.instance) { console.log('About to save an instance:\n', ctx.instance); data = ctx.instance; } else { console.log('About to update resources that match the query %j:', ctx.where); console.log("Parameters to Update", ctx.data); data = {}; data.where = ctx.where; data.data = ctx.data; }
ws.send(JSON.stringify({ 'Changes': data })); next(); });
ws.send(JSON.stringify({ 'Message': 'Connection established' })); });};