Keep your Excelsheet updated ;-) or how to bind Kendo UI for jquery on a Synology to websocket

This is not really about Excel but about Kendo Grid’s ability to update grid data in the browser.  This is already my second attempt as a Mosquitto based MQTT solution did not work properly.

Demo Grid

Installing node.js on the Synology is straightforward – just use the package manager. We also need some local packages. Change into the target directory and type

npm install express
npm install typescript
npm install ws

Copy also app.js from https://github.com/telerik/kendoui-ws-demo into that directory. Unfortunately app.js breaks in line 5 (we need another port as 5000 is already occupied in the Synology). It also crashes in line 6, as the node.js V4 version needs full extension. So use the following lines

var WebSocketServer = require("ws").Server;
var http = require("http");
var express = require("express");
var app = express();
var port = process.env.PORT || 5050;
var products = require("./products.js");

Then start the server by

/usr/local/bin/node /volume1/web/kendoui-ws-demo-master/app.js &

Get the client script in kendoui.for.jquery.2017.3.1018.trial/examples/grid/web-socket.html and change the host. Take care to use ws (Websocket), not wss (Websocket secure) unless you know what you are doing.

//var host = "wss://kendoui-ws-demo.herokuapp.com";
var host = "ws://myserver:5050";

That’s it.