0
私はnodeJsで新しく、私の問題の解決策を見つけることができません。ログインインターフェースがあります。2人のユーザーの接続後には警告が表示されません。第2のユーザの接続の前に常に表示される。 どのように私はそれが第二のユーザのログイン後に表示させることができます。 これは私のclient.jsコードです:nodeJsを使用したConnexionクライアント
var socket = io.connect('http://localhost:5050');
$('#loginform').submit(function(event){
event.preventDefault();
socket.emit('login' , {
username : $('#username').val(),
mail : $('#mail').val()
})
});
socket.on('loged' , function(){
$('#login').fadeOut();
});
socket.on('newuser' , function(user){
$('#users').append('<img src="' + user.avatar + '">');
})
私のコードserver.js
var http = require('http');
var fs = require('fs');
var md5 = require('MD5');
var alert=require('alert-node');
var server = http.createServer(function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(content);
});
});
var io = require('socket.io').listen(server);
var users = {};
var i=0;
io.sockets.on('connection', function (socket,user) {
var me;
console.log('new user is connected');
for (k in users) {
socket.emit('newuser' , users[k]);
}
socket.on('login' , function(user){
me=user;
me.id=user.mail.replace('@','-').replace('.','-');
me.avatar = 'https://gravatar.com/avatar/' + md5(user.mail) + '?s=50';
socket.emit('loged');
users[me.id] = me;
io.sockets.emit('newuser', me);
});
});
server.listen(5050);