客户端数据不传递给服务器

预警,我是Javascript的新手,node.js,socket.io。 到目前为止,这是相当惊人的。 🙂

我正在尝试创build一个简单的用户界面。 客户端将input他们select的用户名,点击button,将触发一个事件,将发送用户名到服务器放入一个数组。

客户端连接正常,发生握手。 然而,套接字不会将数据发送到服务器。

服务器:

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."); } 

谢谢您的帮助!

你应该使用.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); });