Отправка сообщений client-> server-> client на socket.io на node.js
Я использую NodeJS + Socket.IO для простой веб-игры. Оно работает. Зачем?
Вот мойserver.js
var app = require('express').createServer();
var io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket) {
socket.on('set nickname' , function (nickname) {
socket.nickname = nickname;
console.log(nickname + ' just connected!');
});
socket.on('msg' , function (msg) {
socket.msg = msg;
io.sockets.emit('response', msg);
});
socket.on('updatePlayer' , function (updatePlayer) {
console.log("Someone just moved on the map!");
});
});
app.listen(8080);
Я знаю, что это работает потому, что, когда я загружаю страницу и выполняется этот скрипт:
// SERVER STUFF
socket.on('connect', function () {
console.log('We are connected!');
name = $(".name").val();
this.emit('set nickname', name, function (success) {});
msg = name + "|" + currX + "|" + currY + "|" + currentMap;
this.emit('msg', msg, function (success) {});
socket.on('response', function (data) {
var theMsg = data.split("|");
sayDialog("New player! " + theMsg[0] + " connected on map " + theMsg[3] + " on coordinates (" + theMsg[1] + "," + theMsg[2] + ")");
});
});
Я получаю в своем диалоговом окне ("CSS div") что-то вродеNew player! weka connected on map 4 on coordinates (10,5)
ОК, круто, так работает! Однако, когда я "двигаюсь" Я пытаюсь отправить сообщение на сервер, используя это
socket.on('updatePlayer', function () {
console.log("Testing...");
});
Я даже не вижуconsole
Тестирование. Я не знаю почему.