io.in(data.room).emit(“ group”,username)不起作用

时间:2018-11-27 09:43:04

标签: node.js io socket.io chat

每当新用户加入会议室时,我都会尝试使用“ socket.io”和“ node js”在该会议室中广播消息。这是我卡住的相关代码。(当前正在发生的事情是:

步骤1:一个用户创建了群组(消息在聊天室中显示为“您创建了聊天室并加入了聊天室”)

第2步:其他用户加入该组(该消息在已加入的用户上显示为“已加入该组”,但在创建该组的其他用户上未显示该消息)

尝试“发出”用户已加入该群组的消息,作为其在“聊天室”上的第一条消息,但未发出该消息。

尝试io.on(data.room).emit("group",... socket.to(data.room).broadcast.emit(.... socket.broadcast.to(data.room).emit(....

服务器端-> app.js

io.on('connection', (socket) => {


socket.on("joinGroup",(data)=>{
    console.log("room clicked server",data)
    // socket.broadcast.to(data.room).emit("jgroup",{username : data.username})//not emitting to jgroup, which will show that this current user joined the group
     socket.to(data.room).broadcast.emit("jgroup",{username : data.username})
    // io.in(data.room).emit("jgroup",{username : data.username})
    //console.log(data.room)
   // console.log(data.username)
   console.log(io.sockets.name)



})
});

*客户端-> chat.js

$(function () {
//make connection
console.log("hello")
var socket = io()
socket.on("jgroup",(data)=>{
    console.log("11111111111111",data.username)

    feedback.html('');
    message.val('');
    chatroom.append("<p class='message'  style='font-family:courier;'>" + data.username + " has joined the group. </p>")

})
});

在此先感谢您的帮助。询问是否不了解我的问题,试图清楚,简单地提出我的疑问。

1 个答案:

答案 0 :(得分:0)

要向房间中的每个人发射,您可以致电io.to(data.room).emit("jgroup",...

这里的备忘单很方便https://socket.io/docs/emit-cheatsheet/