Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Node.js 使用socket.id识别聊天应用程序的用户_Node.js_Sockets_Express - Fatal编程技术网

Node.js 使用socket.id识别聊天应用程序的用户

Node.js 使用socket.id识别聊天应用程序的用户,node.js,sockets,express,Node.js,Sockets,Express,我是node.js新手,在使用socket.id识别登录用户时遇到了问题。在客户端,用户使用电子邮件id和密码登录,通过服务器端的表进行验证,如果验证,则使用user socket.id向该客户端发送用户名 当两个用户登录时;他们可以使用唯一的用户名聊天,但当刷新聊天页面时,两个用户名都会更改为第二个logini.e的用户名。稍后登录的用户。请帮忙 这是我的密码 server.js var express = require('express') , app = express() , http

我是node.js新手,在使用socket.id识别登录用户时遇到了问题。在客户端,用户使用电子邮件id和密码登录,通过服务器端的表进行验证,如果验证,则使用user socket.id向该客户端发送用户名

当两个用户登录时;他们可以使用唯一的用户名聊天,但当刷新聊天页面时,两个用户名都会更改为第二个logini.e的用户名。稍后登录的用户。请帮忙

这是我的密码 server.js

var express = require('express')
, app = express()
, http = require('http')
, server = http.createServer(app)
, Twit = require('twit')
, io = require('socket.io').listen(server)
, os = require('os')
, open = require('open')
, bodyParser = require('body-parser')
, connect = require('connect')
, mysql = require("mysql");

var clients = {};

server.listen(9383,'192.168.1.3');

var name1;

app.get('/loginstyle.css', function (req, res) {
  res.sendfile(__dirname + '/loginstyle.css');
});

app.get('/loginme', function (req, res) {
  res.sendfile(__dirname + '/loginmysql.html');
});

app.get('/option', function (req, res) {
  res.sendfile(__dirname + '/option.html');
});

app.get('/chat', function (req, res) {
  res.sendfile(__dirname + '/chat.html');
});

app.post('/valid', function (req, res) {

  var username=req.body.email;
  var password=req.body.pass;

  var connection = mysql.createConnection({
    "hostname": "localhost",
    "user": "root",
    "password": "vk123",
    "database": "login"
  });

  connection.connect();

  connection.query('SELECT * FROM id WHERE email=? AND password=?', [username,password], function(err, rows){

    if (err){
      throw err;
    }else{
      for (var i in rows) {

          name1=rows[i].name;

          io.sockets.on('connection', function(socket){
            clients[socket.id] = socket;
            clients[socket.id].emit('name', name1); // username is sent to client
           });

          res.redirect('http://192.168.1.3:9383/chat');
      }
    }
  });

connection.end();
});


  io.sockets.on('connection', function(socket){
    socket.on('chat message', function(name,msg){

      console.log(msg);    
      io.emit('chatmessage',name,msg);
    });
  });
client.html

   <!DOCTYPE html>
    <html>
    <head>

    </head>

    <body background="/bgimage.jpg">
        <div class="chat"></div>    

        <form style="bottom:10px; position:fixed; padding-left: 100px">
            <input type="text" class="msg" style="width:1000px; height:30px"></input>
            <button type="submit" class="enter" style="padding-left:0px; height:35px; background-color:skyblue">Send</button>
        </form>

        <script src="/socket.io/socket.io.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script>
        $(document).ready(function(){
            var socket = io.connect('http://192.168.1.3:9383');
            var username;
            var chatmsg=[];

            socket.on('name', function(name){
                username=name;
                console.log(username);
            });


        $('.enter').bind("click",function(){
                chatmsg.push({chatname:username, msgtext:($('.msg').val())});
                socket.emit('chat message',username,$('.msg').val() );
                $('.msg').val('');
                return false;
            });

            socket.on('chatmessage', function(name,msg){

                var block= $("<div class='message'> </div>");
                if(msg.length){
                    var messenger= $("<div style='color:green;font-weight:bold;background-color:floralwhite'> </div>");
                    messenger.append(name);
                    block.append(messenger);
                    var text=$("<div style='padding:3px;background-color:floralwhite'></div>");
                    text.append(msg);
                    block.append(text);
                    block.append($("<div style='padding:10px;background-color:transparent'></div>"));
                    $('.chat').append(block);
                }
            });
        });
        </script>
    </body>
    </html>

您在for循环中遇到了问题。另外,你不应该。谢谢你的回复。我删除了循环,然后也不工作。name1=行[0]。名称;在'connection'上,functionsocket{clients[socket.id]=socket;clients[socket.id].emit'name',name1;};