gpt4 book ai didi

node.js - Socket.io 广播不工作

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:48 24 4
gpt4 key购买 nike

我有以下代码:

var room = "1";
var chat = io.connect("localhost:3700/");
self.chat = chat;
chat.on("connection", function(socket){
socket.emit("room", room);
socket.on('message', function (data) {
self.receiveMessage(data);
});
});

chat.broadcast.to(room).emit('send',"HEllo");

接收消息:

receiveMessage: function(data){

var $elem = $("#chat1");
var $content = $elem.find(".messageText");
if(data.message) {
messages.push(data);
var html = '';
for(var i=0; i<messages.length; i++) {
html += '<b>' + (messages[i].username ? messages[i].username : 'Server') + ': </b>';
html += messages[i].message + '<br />';
}
$content.html(html);
} else {
console.log("There is a problem:", data);
}
}

chat.broadcast.to(room).emit('send',"HEllo"); 给我错误:

Uncaught TypeError: Cannot call method 'to' of undefined

我做错了什么?

最佳答案

不太确定,但我认为您只能在连接时发送广播。

你可以试试这个:

var room = "1";
var chat = io.connect("localhost:3700/");
self.chat = chat;
chat.on("connection", function(socket){
socket.emit("room", room);
socket.on('message', function (data) {
self.receiveMessage(data);
});


chat.broadcast.to(room).emit('send',"HEllo");
});

当然你也可以在单独的处理程序中发送广播,即:

var room = "1";
var chat = io.connect("localhost:3700/");
self.chat = chat;
chat.on("connection", function(socket){
socket.emit("room", room);
socket.on('message', function (data) {
self.receiveMessage(data);
});

socket.on('foo event', function(data) {
chat.broadcast.to(room).emit('send',"HEllo");
}
});

关于node.js - Socket.io 广播不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com