Node.js NodeJS Socket.io变量未定义

Node.js NodeJS Socket.io变量未定义,node.js,socket.io,Node.js,Socket.io,我正在用Node和Socket.io制作我的第一个聊天应用程序。到目前为止,除了我试图输出client.nickname变量外,一切都正常工作 index.html var socket = io.connect('http://localhost:3000'); socket.on('connect', function(data){ $('#status').html("Connected!"); var nickname = prompt("Whats ur

我正在用Node和Socket.io制作我的第一个聊天应用程序。到目前为止,除了我试图输出client.nickname变量外,一切都正常工作

index.html

var socket = io.connect('http://localhost:3000');
    socket.on('connect', function(data){
      $('#status').html("Connected!");
      var nickname = prompt("Whats ur name?");
      socket.on('join', nickname);
    });
    $('#submit-btn').click(function(){
      var msg = $('#input_text').val();
      socket.emit('messages',msg);
    });

    socket.on('messages', function(data){
      console.log(data);
    });
var socket = io.connect('http://localhost:3000');
socket.on('connect', function(data){
  $('#status').html("Connected!");
  var nickname = prompt("Whats ur name?");
  socket.emit('join', nickname); // change this line from socket.on('join', nickname);
});
$('#submit-btn').click(function(){
  var msg = $('#input_text').val();
  socket.emit('messages',msg);
});
app.js

io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
  });
  client.on('messages', function(data){
    var nickname = client.nickname;
    client.broadcast.emit('messages', nickname +": " + data);
    client.emit('messages', nickname + ": " + data);
  });
});
io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
});
我的控制台输出: 未定义:正确的消息

它应该输出:
Kyle(或在提示中输入的内容):正确的消息。

您需要将数据发送到“join”处理程序

例如:

index.html

var socket = io.connect('http://localhost:3000');
    socket.on('connect', function(data){
      $('#status').html("Connected!");
      var nickname = prompt("Whats ur name?");
      socket.on('join', nickname);
    });
    $('#submit-btn').click(function(){
      var msg = $('#input_text').val();
      socket.emit('messages',msg);
    });

    socket.on('messages', function(data){
      console.log(data);
    });
var socket = io.connect('http://localhost:3000');
socket.on('connect', function(data){
  $('#status').html("Connected!");
  var nickname = prompt("Whats ur name?");
  socket.emit('join', nickname); // change this line from socket.on('join', nickname);
});
$('#submit-btn').click(function(){
  var msg = $('#input_text').val();
  socket.emit('messages',msg);
});
app.js

io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
  });
  client.on('messages', function(data){
    var nickname = client.nickname;
    client.broadcast.emit('messages', nickname +": " + data);
    client.emit('messages', nickname + ": " + data);
  });
});
io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
});

注意此代码未经测试。

您需要将数据发送到“join”处理程序

例如:

index.html

var socket = io.connect('http://localhost:3000');
    socket.on('connect', function(data){
      $('#status').html("Connected!");
      var nickname = prompt("Whats ur name?");
      socket.on('join', nickname);
    });
    $('#submit-btn').click(function(){
      var msg = $('#input_text').val();
      socket.emit('messages',msg);
    });

    socket.on('messages', function(data){
      console.log(data);
    });
var socket = io.connect('http://localhost:3000');
socket.on('connect', function(data){
  $('#status').html("Connected!");
  var nickname = prompt("Whats ur name?");
  socket.emit('join', nickname); // change this line from socket.on('join', nickname);
});
$('#submit-btn').click(function(){
  var msg = $('#input_text').val();
  socket.emit('messages',msg);
});
app.js

io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
  });
  client.on('messages', function(data){
    var nickname = client.nickname;
    client.broadcast.emit('messages', nickname +": " + data);
    client.emit('messages', nickname + ": " + data);
  });
});
io.on('connection', function(client){
  client.on('join', function(name){
    client.nickname = name;
});

注意,此代码未经测试。

谢谢!我需要更改socket.on('join',昵称);到socket.emit('join',昵称);在index.htmlYeah中,我更新了我的答案以获得更清晰的示例,但看起来您已经得到了答案=)。谢谢!我需要更改socket.on('join',昵称);到socket.emit('join',昵称);在index.htmlYeah中,我更新了我的答案以获得更清晰的示例,但看起来您已经得到了它=)。