add SmartWebSocketServer
This commit is contained in:
parent
9beec2ff3a
commit
542dc31578
|
@ -0,0 +1,27 @@
|
||||||
|
module.exports = upgradeWebSocketServer;
|
||||||
|
|
||||||
|
function upgradeWebSocketServer(wss) {
|
||||||
|
wss.on("connection", (ws) => {
|
||||||
|
upgradeWebSocket(ws);
|
||||||
|
});
|
||||||
|
wss.sendEvent = function(event, data) {
|
||||||
|
wss.clients.forEach((ws) => {
|
||||||
|
ws.sendEvent(event, data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function upgradeWebSocket(ws) {
|
||||||
|
ws.on("message", (message) => {
|
||||||
|
let parsedMessage = null;
|
||||||
|
try {
|
||||||
|
parsedMessage = JSON.parse(message);
|
||||||
|
if ("event" in parsedMessage && "data" in parsedMessage) {
|
||||||
|
ws.emit(parsedMessage.event, parsedMessage.data);
|
||||||
|
}
|
||||||
|
} catch {}
|
||||||
|
});
|
||||||
|
ws.sendEvent = function(event, data) {
|
||||||
|
return ws.send(JSON.stringify({"event" : event, "data" : data}));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
node_modules
|
|
@ -0,0 +1,8 @@
|
||||||
|
<script src="../SmartWebSocket.js"></script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
let sock = new SmartWebSocket("ws://127.0.0.1:8082");
|
||||||
|
|
||||||
|
sock.on("test", console.log);
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"name": "examples",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"dependencies": {
|
||||||
|
"ws": "^8.18.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ws": {
|
||||||
|
"version": "8.18.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
|
||||||
|
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"bufferutil": "^4.0.1",
|
||||||
|
"utf-8-validate": ">=5.0.2"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"bufferutil": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"utf-8-validate": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"ws": "^8.18.0"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
const { WebSocketServer } = require('ws');
|
||||||
|
const upgradeWSS = require('../SmartWebSocketServer.js');
|
||||||
|
|
||||||
|
const wss = new WebSocketServer({ port: 8082 });
|
||||||
|
|
||||||
|
upgradeWSS(wss);
|
||||||
|
|
||||||
|
wss.on("u_connection", (ws) => {
|
||||||
|
console.log("connected");
|
||||||
|
ws.sendEvent("test", { "abc" : 123 });
|
||||||
|
});
|
||||||
|
|
||||||
|
wss.on("listening", () => {
|
||||||
|
console.log("listening...");
|
||||||
|
})
|
Reference in New Issue