Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 插座IO不';t发送阵列_Javascript_Html_Socket.io - Fatal编程技术网

Javascript 插座IO不';t发送阵列

Javascript 插座IO不';t发送阵列,javascript,html,socket.io,Javascript,Html,Socket.io,我正在尝试使用socket.io联机显示所有用户名: 以下是服务器端代码: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); var send="dsf"; v

我正在尝试使用socket.io联机显示所有用户名: 以下是服务器端代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

  app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
   });
var send="dsf";
var usernames=[];
var users=0;
 io.on('connection', function(socket){
users++;
    console.log(users);
io.emit("online",users);
socket.on("new",function(username)
{
    console.log(username+"is connected");
    socket.username=username;
    usernames[username]=username;
    console.log(usernames);
    io.emit("users",
    {total: users,
    names:usernames});
    }

);

         socket.on('disconnect' ,function(){
          users--;
         console.log(users);

            });
       });


             http.listen(3000, function(){
          console.log('listening on *:3000');
      });
以下是客户端:

<script>
var socket = io();
 $(document).ready(function(){
 var name=prompt("What is your name?","");
 if (name!="")
 {
 socket.emit("new",name);
 }
       socket.on("online",function(users)
{
alert(users);
})
socket.on("users",function(usernames)
{
alert(usernames.names.length);
});
  });
</script>

var socket=io();
$(文档).ready(函数(){
var name=prompt(“您叫什么名字?”,“”);
如果(名称!=“”)
{
socket.emit(“新”,名称);
}
socket.on(“在线”,功能(用户)
{
警报(用户);
})
socket.on(“用户”,函数(用户名)
{
警报(用户名.名称.长度);
});
});
我只想在用户登录时显示所有连接的用户名。我无法发送包含所有已连接用户名的用户名数组(我知道我必须在断开连接时删除一个用户,但我会在最后这样做)


var socket=io();
$(文档).ready(函数(){
var name=prompt(“您叫什么名字?”,“”);
如果(名称!=“”)
{
socket.emit(“新”,名称);
}
socket.on(“在线”,功能(用户)
{
警报(用户);
})
socket.on(“用户”,函数(用户名)
{
警报(用户名.名称.长度);
});
});
Socket.IO聊天
*{边距:0;填充:0;框大小:边框框;}
正文{字体:13px Helvetica,Arial;}
表单{background:#000;填充:3px;位置:固定;底部:0;宽度:100%;}
表单输入{边框:0;填充:10px;宽度:90%;右边距:5%;}
窗体按钮{宽度:9%;背景:rgb(130224255);边框:无;填充:10px;}
#消息{列表样式类型:无;边距:0;填充:0;}
#消息li{padding:5px 10px;}
#留言李:第n个孩子(奇数){背景:#eee;}
    发送
    您需要更改
    用户名
    数组分配

    usernames[username]=username;
    
    对,

    这将解决问题。我已经测试过了,效果很好


    希望这有帮助

    当你用
    console.log(usernames)
    代替
    alert
    语句时,你会得到什么?另外,你也可以发布你的
    index.html
    代码吗?@DavidR你找到解决方案了吗?@DavidR像这样(请检查最新答案)?@DavidR谢谢兄弟,你是最好的。
    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.get('/', function(req, res){
      res.sendFile(__dirname + '/index.html');
    });
    var send="dsf";
    var usernames=[];
    var users=0;
    io.on('connection', function(socket){
        users++;
            console.log(users);
        io.emit("online",users);
        socket.on("new",function(username)
        {
        console.log(username+"is connected");
        socket.username=username;
        usernames.push(username);
        console.log(usernames);
        }
        );
    
    socket.on('disconnect' ,function(){
    users--;
    console.log(users);
    
    });
    });
    
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });
    
    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.get('/', function(req, res){
      res.sendFile(__dirname + '/index.html');
    });
    var send="dsf";
    var usernames=[];
    var users=0;
    io.on('connection', function(socket){
        users++;
            console.log(users);
        io.emit("online",users);
        socket.on("new",function(username)
        {
        console.log(username+"is connected");
        socket.username=username;
        usernames.push(username);
        console.log(usernames);
        }
        );
    
    socket.on('disconnect' ,function(){
    users--;
    console.log(users);
    
    });
    });
    
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });