Thursday, 17 September 2020

Nodejs + Websocket - How to establish a unique and open connection for each client?

I created a simple WebSocketServer on NodeJS and everything is working fine, but when I connect more then 1 client, it is not working properly. When I send something from client 2, only client 1 gets the message. Is there a way to identify different clients and create a unique connection for each client?My Websocketserver looks like this and I am kind of stuck here - I am generating a unique ID for each client, but how can I apply this ID, to establish a unique connection for each client?:function startupTheWebSocketServer(app, config) {var WebSocketServer = require('websocket').server;console.log(" * Web Socket server will be set up in a moment...")var wsServer = new WebSocketServer({httpServer: app,});wsServer.getUniqueID = function() {function s4() {return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);}return s4() + s4() + '-' + s4();};var url = "ws://localhost:" + config.server_portconsole.log(" * You might test the web socket server with: wsdump.py " + url + " -vv")wsServer.on('request', function(request) {var connection = request.accept();connection.uid = wsServer.getUniqueID();const parameters = require('url').parse(request.resourceURL, true);clients.push(connection)console.log(" * WebSocketServer-INFO: A client has connected. with ID: " + connection.uid)var infomsg_to_client = {"WS-INFO": "Welcome. Send me any message you like."}connection.sendUTF(JSON.stringify(infomsg_to_client));connection.on('message', function(message) {console.log(" * WebSocketServer-DEBUG: message received ", message)}

Submitted September 17, 2020 at 01:47PM by rene7vick

No comments:

Post a Comment