tes*_*est 8 javascript sockets jquery 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);
Run Code Online (Sandbox Code Playgroud)
我知道它有效的原因是因为,当我加载页面并执行此脚本时:
// 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] + ")");
});
});
Run Code Online (Sandbox Code Playgroud)
我进入我的对话框("CSS div")之类的东西 New player! weka connected on map 4 on coordinates (10,5)
好的,很酷,所以它有效!但是,当我"移动"时,我尝试使用此功能向服务器发送消息
socket.on('updatePlayer', function () {
console.log("Testing...");
});
Run Code Online (Sandbox Code Playgroud)
我甚至没有看到console说测试.我不知道为什么.
Wil*_*ilk 17
客户端.玩家移动并执行movePlayer函数:
function movePlayer () {
socket.emit ('player move', {map: 4, coords: '0.0'});
}
socket.on ('updatePlayer', function (msg) {
console.log ('A player moves on map ' + msg.map + ' on coords ' + msg.coords);
});
Run Code Online (Sandbox Code Playgroud)
服务器端.当有人移动时,除了原始播放器之外,每个插槽都会发出一个'updatePlayer'.在每个客户端,拦截updatePlayer.
socket.on ('player move', function (msg) {
io.sockets.emit ('updatePlayer', msg);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29098 次 |
| 最近记录: |