123456789101112131415161718192021222324252627282930313233343536373839 |
- import http from "http";
- import bcrypt from "bcryptjs";
- import { Server } from "socket.io";
- import { instrument, RedisStore } from "@socket.io/admin-ui";
- import { createAdapter } from "@socket.io/redis-adapter";
- import { pubClient, subClient } from "../connection/redis.js";
- import { logger } from "./logger.js";
- import customParser from "socket.io-msgpack-parser";
- console.log("process.env.SOCKET_PATH", process.env.SOCKET_PATH);
- const httpServer = http.createServer();
- const io = new Server(httpServer, {
- cors: {
- origin: "*",
- },
- path: process.env.SOCKET_PATH || "",
- pingInterval: 10000,
- pingTimeout: 5000,
- parser: customParser,
- });
- instrument(io, {
- auth: {
- type: "basic",
- username: process.env.WATCH_USER,
- password: bcrypt.hashSync(process.env.WATCH_PASSWORD, 10),
- },
- namespaceName: "/watch",
- });
- Promise.all([pubClient.connect(), subClient.connect()])
- .then(() => {
- io.adapter(createAdapter(pubClient, subClient));
- logger.info("redis is conetcted");
- })
- .catch((error) => {
- logger.error("redis is connect fail", error);
- });
- export { io };
|