簡體   English   中英

Node.js + Socket.io:客戶端未收到消息

[英]Node.js + Socket.io: Client not receiving message

我正在兩個客戶之間建立一個非常基本的聊天系統。 雖然服務器可以接收來自客戶端的消息,但它不能將消息發送給客戶端(服務器向客戶端發送消息時不會觸發receiveMessage事件)。 下面是我的代碼客戶端:

$("#send-msg").submit(function(e) {
    e.preventDefault(); 
    socket.emit("sendMsg", [$("#msg-text").val(), chattingWith]);
});

socket.on("receiveMessage", receiveMsg);

function receiveMsg(data) {
    console.log("received msg"); // NOT OUTPUTTED
}

下面是我的代碼服務器端:

var socket = io.connect();
var io = socket(server, { pingTimeout: 63000 }); 
io.sockets.on("connection", userConnect); 

function userConnect(user) {
    user.on("sendMsg", sendMsg);

    function sendMsg(msgData) {
        var msgContent = msgData[0];
        var receiverId = msgData[1];
        console.log("received message from " + receiverId); // ACTIVATED
        io.to(receiverId).emit("receiveMessage", [msgContent, receiverId]);
    }
}

我認為您應該更改一些代碼:客戶端(我假設chattingWith是唯一的房間或聊天 ID):

$("#send-msg").submit(function(e) {
   e.preventDefault(); 
   socket.emit("send message", $("#msg-text").val(), chattingWith);
});

socket.on("send Message", receiveMsg);

function receiveMsg(data) {
  console.log(data); //An array should be an output
}

服務器端代碼:

io.on('connection', function(socket){
 socket.on('send message', function(data, id){
        socket.join(id)
        io.sockets.in(id).emit('sendMessage', {
            data: data,
        })
    })
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM