无法使用 socketid 发出事件

Can not emit event with socketid

我正在尝试为套接字 io 编写集成测试。当捕获到错误时,我正在为服务器事件使用 try-catch 我发出一个事件供客户端处理错误

io.of('/rooms').on('connection', socket => {
        const socketId = socket.id;
        console.log('server socketid', socketId);
        const userRepository = getCustomRepository(UserRepository);
        const conversationToUserRepository = getCustomRepository(ConversationToUserRepository);

        socket.on('initGroupChat', async (users_id, fn) => {
            try {
                const [user, listConversationToUser] = await Promise.all([
                    userRepository.findOne({
                        where: {
                            users_id,
                        },
                    }),
                    conversationToUserRepository.find({
                        where: {
                            users_id,
                        },
                    }),
                ]);
            if (!user) {
                throw new NotFoundError('User not found with id: ' + users_id);
            }

            console.log(2);

            user.socket_id = socket.id;
            await userRepository.save(user);

            for (const item of listConversationToUser) {
                socket.join(item.conversation_id.toString());
            }
            fn('init group chat success');
        } catch (error) {
            io.to(socketId).emit('error', errorHandlerForSocket(error));
            console.log(10);
        }
    });
});

但是在套接字客户端上,没有任何反应。这是代码套接字客户端:

it.only('Init Group Chat with error', done => {
        socket = io.connect(`http://localhost:${env.app.port}/rooms`, {
            transports: ['websocket']
        });



   const id = 11111;
    socket.emit('initGroupChat', id, (response: any) => {
        console.log('response', response);
    });

    socket.on('error', (error: any) => {
        console.log('error3', error);
        done();
    });

});

在错误事件中,console.log 没有在终止时显示。它没有捕捉到我在服务器上发出的事件。

谁能帮我解决这个问题

每次客户端Refresh socketId变化。

服务器:

io.emit("send_to_client", {
   userId: 112233,
   data: "Hello user 112233"
});

客户:

 var userLogin = 112233;
 socket.on("send_to_client", function(res) {
  if(res.userId === userLogin)
    //somethingElse
});