我正在使用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);
});
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);
});
});
我的控制台输出: undefined:正确的信息。
应该输出: 凯尔(或提示中输入的内容):正确的信息。
答案 0 :(得分:0)
您需要向'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.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;
});
请注意,此代码未经过测试。