预警,我是Javascript,node.js,socket.io的新手。到目前为止,这真是太神奇了。 :)
我正在尝试创建一个简单的用户界面。客户端将输入他们选择的用户名,单击按钮并将触发一个事件,该事件将用户名发送到服务器以放入阵列。
客户端连接正常,握手发生。但是套接字没有向服务器发送数据。
服务器
var io = require('socket.io').listen(8888);
var players = [];
io.sockets.on('connection', function (socket) {
socket.on('adduser', function(username) {
players.push(username);
console.log("Received: " + username);
});
});
客户端:
var socket = io.connect('/socket.io/socket.io.js');
function usernameSubmit(){
console.log("Button pressed");
var textfield = document.getElementById('usernamefield');
var username = textfield.value
if (username != ""){
console.log(username);
socket.send('adduser', username);
console.log("Username submitted.");
}
else
console.log("Blank username detected.");
}
感谢您的帮助!
答案 0 :(得分:1)
你应该使用.emit。这样你就可以传递一个对象并在服务器上访问它。
客户端:
if (username != ""){
console.log(username);
socket.emit('adduser', { username: username });
console.log("Username submitted.");
}
服务器:
socket.on('adduser', function(data) {
players.push(data.username);
console.log("Received: " + data.username);
});