Socket IO 节点向所有客户端广播数据

Posted

技术标签:

【中文标题】Socket IO 节点向所有客户端广播数据【英文标题】:Socket IO Node to broadcast data to all clients 【发布时间】:2013-08-30 03:45:52 【问题描述】:

我正在开发一个 WebGL 多人游戏。我尝试通过 socket.io 实现多人游戏,在 node.js 中使用 express。当用户按下任何键时,键事件首先发送到服务器,然后服务器应该使用套接字向所有客户端广播,就像当用户按下键时,角色的移动应该对所有客户端的浏览器都是可见的,但是但是现在我的代码只有在客户端按键的浏览器中才会发生字符的移动。

我在这里提供了我的代码

https://github.com/kshitizrimal/helpGl

请帮我解决这种情况

【问题讨论】:

Update all clients using Socket.io?的可能重复 它的 chatpage.jade .. 它在我的仓库中 【参考方案1】:

您使用的是 express 2.x 语法。您必须更改 express v3 的语法。看到这个page

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);

【讨论】:

以上是关于Socket IO 节点向所有客户端广播数据的主要内容,如果未能解决你的问题,请参考以下文章

向每个客户端广播的套接字IO及其套接字ID

Socket.io 是不是保证按客户端顺序接收广播事件?

python Socket.IO 客户端,用于向 TornadIO2 服务器发送广播消息

Laravel Homestead , Socket.io 连接被拒绝

socket.io 只向房间 A 和 B 中的用户广播

节点(套接字)实时音频流/广播