Skip to content

Commit 57fe1f9

Browse files
authored
fixed websockets (#373)
1 parent 8625cba commit 57fe1f9

File tree

4 files changed

+33
-13
lines changed

4 files changed

+33
-13
lines changed

src/server/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { withErrorHandler } from "./middleware/error";
1212
import { withExpress } from "./middleware/express";
1313
import { withRequestLogs } from "./middleware/logs";
1414
import { withOpenApi } from "./middleware/open-api";
15+
import { withWebSocket } from "./middleware/websocket";
1516
import { withRoutes } from "./routes";
1617
import { writeOpenApiToFile } from "./utils/openapi";
1718

@@ -51,6 +52,7 @@ const main = async () => {
5152
await withCors(server);
5253
await withRequestLogs(server);
5354
await withErrorHandler(server);
55+
await withWebSocket(server);
5456
await withAuth(server);
5557
await withExpress(server);
5658
await withOpenApi(server);

src/server/middleware/websocket.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import WebSocketPlugin from "@fastify/websocket";
2+
import { FastifyInstance } from "fastify";
3+
import { logger } from "../../utils/logger";
4+
5+
export const withWebSocket = async (server: FastifyInstance) => {
6+
await server.register(WebSocketPlugin, {
7+
errorHandler: function (
8+
error,
9+
conn /* SocketStream */,
10+
req /* FastifyRequest */,
11+
reply /* FastifyReply */,
12+
) {
13+
logger({
14+
service: "websocket",
15+
level: "error",
16+
message: `Websocket error: ${error}`,
17+
});
18+
// Do stuff
19+
// destroy/close connection
20+
conn.destroy(error);
21+
},
22+
});
23+
};

src/server/routes/transaction/status.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,11 @@ export async function checkTxStatus(fastify: FastifyInstance) {
9595
});
9696
},
9797
wsHandler: async (connection: SocketStream, request) => {
98-
logger({
99-
service: "server",
100-
level: "info",
101-
message: `Websocket route handler`,
102-
data: request,
103-
});
104-
10598
const { queueId } = request.params;
10699
// const timeout = await wsTimeout(connection, queueId, request);
107100

108101
logger({
109-
service: "server",
102+
service: "websocket",
110103
level: "info",
111104
message: `Websocket connection established for ${queueId}`,
112105
});
@@ -127,7 +120,7 @@ export async function checkTxStatus(fastify: FastifyInstance) {
127120

128121
connection.socket.on("error", (error) => {
129122
logger({
130-
service: "server",
123+
service: "websocket",
131124
level: "error",
132125
message: `Websocket error`,
133126
error,
@@ -138,7 +131,7 @@ export async function checkTxStatus(fastify: FastifyInstance) {
138131

139132
connection.socket.on("message", async (message, isBinary) => {
140133
logger({
141-
service: "server",
134+
service: "websocket",
142135
level: "info",
143136
message: `Websocket message received`,
144137
data: message,
@@ -149,7 +142,7 @@ export async function checkTxStatus(fastify: FastifyInstance) {
149142

150143
connection.socket.on("close", () => {
151144
logger({
152-
service: "server",
145+
service: "websocket",
153146
level: "info",
154147
message: `Websocket connection closed`,
155148
});

src/utils/env.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,11 @@ export const env = createEnv({
5252
.default("debug"),
5353
LOG_SERVICES: z
5454
.string()
55-
.default("server,worker,cache")
55+
.default("server,worker,cache,websocket")
5656
.transform((s) =>
57-
z.array(z.enum(["server", "worker", "cache"])).parse(s.split(",")),
57+
z
58+
.array(z.enum(["server", "worker", "cache", "websocket"]))
59+
.parse(s.split(",")),
5860
),
5961
THIRDWEB_API_SECRET_KEY: z.string().min(1),
6062
ADMIN_WALLET_ADDRESS: z.string().min(1),

0 commit comments

Comments
 (0)