我正在尝试获取当前连接的所有套接字/客户端的列表.
io.sockets 遗憾的是,它没有返回数组.
我知道我可以使用数组保留自己的列表,但不要认为这是一个最佳解决方案有两个原因:
冗余.Socket.IO已经保留了此列表的副本.
Socket.IO提供了为客户端设置任意字段值的方法(即:),socket.set('nickname', 'superman')所以如果我要维护自己的列表,我需要跟上这些变化.
救命?
我现在有这个代码设置缺口和房间:
io.sockets.on('connection', function(client){
var Room = "";
client.on("setNickAndRoom", function(nick, fn){
client.join(nick.room);
Room = nick.room;
client.broadcast.to(Room).emit('count', "Connected:" + " " + count);
fn({msg :"Connected:" + " " + count});
});
Run Code Online (Sandbox Code Playgroud)
我想知道我怎么能得到有多少人连接到一个特定的聊天室......比如Room.length
客户端 :
function Chat(){
this.socket = null;
this.Nickname = "";
this.Room = "";
var synched = $('#syncUp');
this.Connect = function(nick, room){
socket = io.connect('http://vybeing.com:8080');
Nickname = nick;
Room = room;
//conectarse
socket.on('connect',function (data) {
socket.emit('setNickAndRoom', {nick: nick, room: room}, function(response){
$("#connection").html("<p>" + response.msg + "</p>");
});
});
}
Run Code Online (Sandbox Code Playgroud)
我找到了这个,但它给出了undefined:
count …Run Code Online (Sandbox Code Playgroud) 我正在按照此链接中的教程进行操作(第 7 步)。我成功安装了 node.js 或 socket.js ,但是当我转到该页面并尝试发送图像时,我在服务器上收到此错误
Missing error handler on `socket`.
TypeError: io.sockets.clients is not a function
at Socket.<anonymous> (C:\Users\utente\Projects\webrtc\server.js:30:31)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Socket.onevent (C:\Users\utente\Projects\webrtc\node_modules\socket.io\lib\socket.js:330:8)
at Socket.onpacket (C:\Users\utente\Projects\webrtc\node_modules\socket.io\lib\socket.js:290:12)
at Client.ondecoded (C:\Users\utente\Projects\webrtc\node_modules\socket.io\lib\client.js:193:14)
at Decoder.Emitter.emit (C:\Users\utente\Projects\webrtc\node_modules\socket.io\node_modules\socket.io-parser\node_modules\component-emitter\index.js:134:20)
at Decoder.add (C:\Users\utente\Projects\webrtc\node_modules\socket.io\node_modules\socket.io-parser\index.js:247:12)
at Client.ondata (C:\Users\utente\Projects\webrtc\node_modules\socket.io\lib\client.js:175:18)
at emitOne (events.js:77:13)
Run Code Online (Sandbox Code Playgroud)
我的 server.js 文件是
var os = require('os');
var static = require('node-static');
var http = require('http');
var socketIO = require('socket.io');
var fileServer = new(static.Server)();
var app = http.createServer(function (req, res) {
fileServer.serve(req, …Run Code Online (Sandbox Code Playgroud)