Server-side
Socket.iovar app = require ("Express") (); var http = require ("http"). Server (APP), var io = require ("Socket.io") (HTTP),//couchbasevar couchbase = require ("Couchbase"); var cluster = new Couchbase. Cluster ("COUCHBASE://IP"); var bucket = cluster.openbucket ("name", "Pass"), var onlineusers = {};var Onlinecount = 0;io.on ("Connection", function (socket) {Socket.on ("login", function (obj) {socket.name = Obj.userid;console.log (new Date () + ": Number "+ Obj.userid +" employee is logged in! "), if (Onlineusers.hasownproperty (Obj.userid)) {Delete Onlineusers[obj.userid];onlinecount--;} Onlineusers[obj.userid] = {' UserID ': Obj.userid, ' socket ': Socket};onlinecount + +;}); Socket.on ("Disconnect", function () {if (Onlineusers.hasownproperty (socket.name)) {var obj = {Userid:socket.name}; Delete Onlineusers[socket.name];onlinecount--;console.log (new Date () + ": Number" + obj.userid+ ' already logged out! ‘);}});}); SetInterval (function () {Bucket.getmulti (["Document1", "Document2"], function (err, result) {if (err) {Console.log (new Date () + ": ERROR:" + err);}else{nodeemit (result);}});} function Nodeemit (Result) {for (var user in onlineusers) {//document1_str_cmd1 = result["Document1"].value[" Content "][user];onlineusers[user].socket.emit (" Cmd1 ", _str_cmd1);//Document2if (typeof (result[" Document2 "].value ["Content"] [user]) ! = "undefined") {_str_cmd2 = Json.stringify (result["Document2"].value["Content"][user]); Onlineusers[user]. Socket.emit ("Cmd2", _STR_CMD2);}} Http.listen (8066, function () {Console.log ("listening on *:8066");});
Client JS
function Getnoticetipcount () {if ($ ("#hfAdminID"). val () = "") {var Adminid = $ ("#hfAdminID"). Val (); Connect var socket = Io.connect ("ws://ip:8066/", {' forcenew ': true, ' Reconnect ': true}) ; Socket.emit ("Login", {Userid:adminid}); Initnotice (socket); /*********************************///automatically re-connects, recording status Socket.on (' Connect ', function (data) {Console.log (mo ment (). Format (' HH:mm:ss ') + "connected server")//re-submit login request Socket.emit ("login", {Userid:adminid}) after re-connecting successfully; }); Socket.on (' connect_failed ', function (data) {Console.log (Moment (). Format (' HH:mm:ss ') + "Connection failed"); }); Socket.on (' Error ', function (data) {Console.log (Moment (). Format (' HH:mm:ss ') + "error"); }); Socket.on (' Reconnecting ', function (data) {Console.log (Moment (). Format (' HH:mm:ss ') + "re-connect server"); }); Socket.on (' Reconnect ', function (data) {Console.log (Moment (). Format (' HH:mm:ss ') + "re-connect server succeeded"); }); Socket.on (' Disconnect ', function (data) {Console.log (Moment (). Format (' HH:mm:ss ') + "disconnected"); }); /***********************************/}}//Initialize reminder function Initnotice (socket) {Socket.on ("cmd1", function (_notices) { Console.log (Moment (). Format (' HH:mm:ss ') + "" + _notices);//Other operations}); Socket.on ("Cmd2", function (_CNC) {Console.log (Moment (). Format (' HH:mm:ss ') + "" + _CNC);//Other operations});}
NodeJS + Socket.io final version