我正在开发一个 WebGL 多人游戏。我尝试通过 socket.io 实现多人游戏,并在 node.js 中使用 express。当用户按下任何键时,键事件首先发送到服务器,然后服务器应该使用套接字向所有客户端广播,就像当用户按下键时,角色的移动应该对所有客户端的浏览器都是可见的,但是但是,现在使用我的代码,只有客户端按键的浏览器才会发生字符移动。
我在这里提供了我的代码
https://github.com/kshitizrimal/helpGl
请帮我解决这种情况
我正在开发一个 WebGL 多人游戏。我尝试通过 socket.io 实现多人游戏,并在 node.js 中使用 express。当用户按下任何键时,键事件首先发送到服务器,然后服务器应该使用套接字向所有客户端广播,就像当用户按下键时,角色的移动应该对所有客户端的浏览器都是可见的,但是但是,现在使用我的代码,只有客户端按键的浏览器才会发生字符移动。
我在这里提供了我的代码
https://github.com/kshitizrimal/helpGl
请帮我解决这种情况
您正在使用 express 2.x 语法。您必须更改 express v3 的语法。看到这个页面
Socket.IO 的 .listen() 方法将 http.Server 实例作为参数。从 3.x 开始, express() 的返回值不是 http.Server 实例。(请参阅上面的应用程序功能部分。)要让 Socket.IO 与 Express 3.x 一起工作,请确保您手动创建 http.Server 实例并将其传递给 Socket.IO 的 .listen() 方法。
这就是使用 express3 和 socket.io 的方式
var express = require('express')
var http = require('http');
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);