I have two of Nodejs application, one is used as WebSocket server and another one is used as WebSocket Client.
server.js
const express = require('express');
const WebSocketServer = require('ws');
const wsClient = new WebSocketServer('ws://localhost:1998/');
wsClient.send('Hialo');
const app = express();
const server = app.listen(1989, () => {
console.log('App is listening on 1989');
});
const wss = new WebSocketServer.Server({ server:server });
wss.on("connection", ws => {
console.log("There is a new client!");
ws.on('message', (message) => {
console.log(`Incident message is ${message}`);
})
})
client.js
const express = require('express');
const WebSocketServer = require('ws');
const app = express();
const server = app.listen(1998, () => {
console.log('App is listening on 1998');
});
const wss = new WebSocketServer.Server({ server:server });
wss.on("connection", ws => {
console.log("There is a new client!");
ws.on('message', (message) => {
console.log(`Incident message is ${message}`);
})
})
Problem is: when i try to send message from server to client i am getting this error:
Error: WebSocket is not open: readyState 0 (CONNECTING)
at WebSocket.send (C:\Users\Public\Projects\wsGroup\wsServer\node_modules\ws\lib\websocket.js:441:13)
at Object.<anonymous> (C:\Users\Public\Projects\wsGroup\wsServer\index.js:5:10)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
at node:internal/main/run_main_module:17:47
What is the best solution???