|
1 |
| -import type { SocketStream } from "@fastify/websocket"; |
| 1 | +import type { WebSocket } from "@fastify/websocket"; |
2 | 2 | import type { FastifyRequest } from "fastify";
|
3 |
| -import type { WebSocket } from "ws"; |
4 |
| -import { |
5 |
| - SocketsStore, |
6 |
| - defaultListeners, |
7 |
| - type CustomWebsocketEvent, |
8 |
| -} from "../../ws/index.js"; |
| 3 | +import { SocketsStore, defaultListeners } from "../../ws/index.js"; |
9 | 4 | import { Chat } from "./entity/index.js";
|
10 | 5 |
|
11 |
| -export interface AdditionalListeners { |
12 |
| - addListener( |
13 |
| - event: "socket", |
14 |
| - listener: (this: WebSocket, event: CustomWebsocketEvent) => void, |
15 |
| - ): this; |
16 |
| - on( |
17 |
| - event: "socket", |
18 |
| - listener: (this: WebSocket, event: CustomWebsocketEvent) => void, |
19 |
| - ): this; |
20 |
| -} |
21 |
| - |
22 | 6 | export default function initializeChat() {
|
23 | 7 | const socketsStore = new SocketsStore();
|
24 | 8 | const chat = new Chat({ socketsStore });
|
25 | 9 |
|
26 |
| - return function getChatContext( |
27 |
| - connection: SocketStream & { socket: WebSocket & AdditionalListeners }, |
28 |
| - request: FastifyRequest, |
29 |
| - ) { |
30 |
| - socketsStore.add(connection.socket); |
31 |
| - socketsStore.room(request.session.user.id).add(connection.socket); |
32 |
| - connection.socket |
| 10 | + return function getChatContext(socket: WebSocket, request: FastifyRequest) { |
| 11 | + socketsStore.add(socket); |
| 12 | + socketsStore.room(request.session.user.id).add(socket); |
| 13 | + socket |
33 | 14 | .addListener("socket", defaultListeners.socket)
|
34 | 15 | .addListener("message", defaultListeners.message);
|
35 | 16 | return {
|
36 | 17 | sender: request.session.user,
|
37 |
| - socket: connection.socket, |
| 18 | + socket, |
38 | 19 | chat,
|
39 | 20 | socketsStore,
|
40 | 21 | };
|
|
0 commit comments