を送信しません:ここ は、サーバー側のコードです:ソケット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";
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>
私が望むのは、ユーザーがログインしたときに接続されているすべてのユーザー名を表示することです。接続されているすべてのユーザー名を含むusernames配列を送信できません(切断時にユーザーを削除する必要がありますが、終了)
'alert'文の代わりに' console.log(ユーザ名) 'を使用するとどうなりますか? –
また、 'index.html'コードも投稿できますか? –
@DavidR解決策を見つけましたか? – tony3243