socket.io服务端无法与指定的客户端连接

问题遇到的现象和发生背景

socket.io 服务端想给指定的客户端建立连接发送消息,但是代码敲出来没有连接

问题相关代码,请勿粘贴截图
  //客户端
  socket.emit("sendMsg", msg);
  socket.on('sendMsg',(data)=>{
  console.log(data);
});


   //服务端
    socket.on('sendMsg', (data) => {
            var toUser = data.toUser
            var fromUser = data.fromUser
                // 查询该用户是否在线
            SQLhelper(`select * from user where online_state = 1 and _id=${toUser._id}`).then(ret => {
                // 在线直接发送消息
                if (ret[0]) {
                    //向好友发送消息
                    let toId = ret[0]._id
                    socket.to(toId).emit('sendMsg', data)
                        //保存聊天数据
                    SQLhelper(`
            insert into chat(fromUser,toUser,content,date,isRead) 
            values ('${fromUser._id}','${toUser._id}','${data.content}',${data.date},1)`)
                }
                //没在线将消息保存到数据库
                else {
                    SQLhelper(`
            insert into chat(fromUser,toUser,content,date,isRead) 
            values ('${fromUser._id}','${toUser._id}','${data.content}',${data.date},0)`)
                }
            })
        })
运行结果及报错内容

服务端并没有向指定id的客户端发送数据

我的解答思路和尝试过的方法

我有个问题,就是我socket.to(id).emit('sendMsg',data),服务端怎么知道我是发送给这个id的用户啊,还有我把socket.to(id).emit('sendMsg',data)改为io.emit('sendMsg',data)可以广播出去,然后接收到,但是发送过去的数据就会有和很多个重复的数据,这是怎么回事

我想要达到的结果

前后端能指定用户建立起连接