Server side
$ deno run --allow-net https://deno.land/x/[email protected]/example/server.ts
Client side
$ deno run --allow-net https://deno.land/x/[email protected]/example/client.ts
ws connected! (type 'close' to quit)
> something
Server side
import { WebSocketClient, WebSocketServer } from "https://deno.land/x/[email protected]/mod.ts";
const wss = new WebSocketServer(1234);
wss.on("connection", function (ws: WebSocketClient) {
ws.on("message", function (eventname: string, data: object) {
console.log(eventname, data);
ws.send("hello", { "hello": "world" });
});
});
Client side
import { WebSocketClient, StandardWebSocketClient } from "https://deno.land/x/[email protected]/mod.ts";
const endpoint = "ws://127.0.0.1:1234";
const ws: WebSocketClient = new StandardWebSocketClient(endpoint);
ws.on("open", function() {
console.log("ws connected!");
ws.send("connected", { "connected": true });
});
ws.on("message", function (eventName: string, data: object) {
console.log(eventName, data);
});
event | detail |
---|---|
connection | Emitted when the handshake is complete |
error | Emitted when an error occurs |
field | detail | type |
---|---|---|
server.clients | A set that stores all connected clients | Set<WebSocket> |
method | detail |
---|---|
close() | Close the server |
event | detail |
---|---|
open | Emitted when the connection is established |
close | Emitted when the connection is closed |
message | Emitted when a message is received from the server |
ping | Emitted when a ping is received from the server |
pong | Emitted when a pong is received from the server |
error | Emitted when an error occurs |
field | detail | type |
---|---|---|
websocket.isClosed | Get the close flag | Boolean | undefined |
method | detail |
---|---|
send(eventName: string, data: object) | Send a message with a payload |
ping(message:string | Unit8Array) | Send the ping |
close([code:int[, reason:string]]) | Close the connection with the server |
forceClose() | Forcibly close the connection with the server |