-
Notifications
You must be signed in to change notification settings - Fork 2
/
echo_server.ts
35 lines (29 loc) · 1014 Bytes
/
echo_server.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { Server, Client, Packet, Event } from "../mods.ts";
async function main() {
const server = new Server({ port: 8080 });
server.on(Event.listen, (server: Deno.Listener) => {
let addr = <Deno.NetAddr> server.addr;
console.log(`Server listen ${addr.hostname}:${addr.port}`);
});
server.on(Event.connect, (client: Client) => {
let remote: any | Deno.NetAddr = client.conn?.remoteAddr;
console.log("Open -", `${remote.hostname}:${remote.port}`);
});
server.on(Event.receive,(client: Client, data: Packet, length: number) => {
let origin = data.toString();
let message = origin.replace(/\n$/, "");
console.log(`Receive(${length}) -`, message);
if (message === "finish") {
server.close();
} else {
client.write(origin);
}
},
);
server.on(Event.close, (client: Client) => {
let remote: any = client.conn?.remoteAddr;
console.log("Close -", `${remote.hostname}:${remote.port}`);
});
await server.listen();
}
main();