Предупреждение. Я новичок в 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.");
}
Спасибо за помощь!
Не совсем; 'send' аналогичен старым старым веб-сайтам, поскольку вы не можете указать имя события - вместо этого оно будет вызывать событие' message'. Вы правы, хотя в том, что 'emit' - это то, что вы должны использовать для названных событий, таких как' adduser'. Вы можете отправить строку, объект или вызвать функцию, используя оба AFAIK. –
Странно, все равно кажется, что сервер ничего не получает. – iColor
(Хотя, я могу подтвердить на стороне клиента, он подбирает имя пользователя просто отлично.) – iColor