1
Fork 0
This repository has been archived on 2022-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
web-drs-backend/server.deno.ts

45 lines
988 B
TypeScript
Raw Normal View History

2022-01-07 17:36:19 +01:00
import {
WebSocketServer
} from "https://deno.land/x/websocket@v0.1.3/mod.ts";
const port = 8989;
const timeout = 15000;
const server = new WebSocketServer(port);
console.log("listening on port: " + port);
function ackPkg() {
return JSON.stringify({
type: "ack",
date: Date.now(),
});
}
server.on("connection", function connection(socket) {
function close() {
socket.send("closing connection due to inactivity");
socket.close();
}
socket.on("message", function (message: string) {
console.log("message: " + message);
socket.send(
JSON.stringify({
date: Date.now(),
author: "ECHO Service",
content: message,
})
);
clearTimeout(closeTimeout);
closeTimeout = setTimeout(close, timeout);
});
socket.on("close", function close() {
console.log("closed a connection");
});
console.log("new client connected!");
socket.send("connected");
let closeTimeout = setTimeout(close, timeout);
});