【发布时间】:2013-04-16 02:37:54
【问题描述】:
它最初是一个 lynda.com 教程项目
我已经尝试过并且尝试过来让它工作。我希望能够向特定聊天成员发送消息(向一个套接字发送消息)。
我看了这个,仍然无法让我的工作。 Socket.IO - how do I get a list of connected sockets/clients?
我已经尽可能多地删掉了不属于这个问题的内容。
第一个文件:
var io = require('socket.io'), connect = require('connect'), chatter = require('./chatter.js');
var app = connect().use(connect.static('public')).listen(process.env.PORT || 3000);
var chatRoom = io.listen(app);
chatter.setSockets(chatRoom.sockets);
chatRoom.sockets.on("connection", function(socket){
chatter.connectChatter({
socket: socket,
username: socket.id
});
});
第二个文件:
var allSockets = null;
var members = [];
exports.setSockets = function(sockets){
allSockets = sockets;
}
exports.connectChatter = function(config){
var exists = false;
var self;
for(var i = 0; i < members.length; i++){
if(members[i].userName == config.username){
exists = true;
break;
}
}
if(!exists){
self = {userName:config.username};
members.push(self);
}
config.socket.emit("welcome",{user:self});
allSockets.emit("getUsers",{users:members});
config.socket.on("chat", function(data){
allSockets.emit("chat", {message:data.message}); //works just fine
sockets[socket].emit("chat", {message:data.message}); //WILL NOT WORK
sockets[0].emit("chat", {message:data.message}); //WILL NOT WORK
socket[0].emit("chat", {message:data.message}); //WILL NOT WORK
allSockets[socket].emit("chat", {message:data.message}); //WILL NOT WORK
allSockets[0].emit("chat", {message:data.message}); //WILL NOT WORK
allSockets.socket(0).emit('chat', {message:data.message}); //DOES NOTHING, BUT DOES NOT BREAK APP
请帮忙。我敢肯定这是愚蠢或愚蠢的事情。我对此很陌生。我只是不知道语法是什么。
【问题讨论】:
-
当我执行 console.log 时,我得到了 sockets: [Circular] 作为它的一部分。
-
console.log(allSockets.manager.sockets.manager.sockets.manager.sockets.manager.sockets);与 console.log(allSockets.manager.sockets); 是一样的这对我来说没有任何意义。永无止境的循环
标签: jquery sockets socket.io emit