问题标签 [socket.io-redis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 'laravel-echo-server' 不是内部或外部命令、可运行程序或批处理文件
当我想在我的项目目录中运行此命令时。
项目目录是D:\xampp\htdocs\app>
当我运行它时,它表明
laravel-echo-server 不是内部或外部命令可运行程序或批处理文件。
有什么帮助吗?
socket.io - 我不清楚如何使用 socket.io-emitter (服务器到服务器)
下面是我如何初始化和发出,但我没有发现任何错误,我的服务器也没有监听,接收任何事件。
我尝试了很多变化,有人可以启发我如何调试这个吗?
我也尝试在对象之前添加一个 redis href。
node.js - 具有多个值的 Socket.io 服务器响应
我正在使用带有 nodeJs v6 后端的反应前端和 socket.io-redis pub sub 方法。在这种情况下,浏览器会拒绝连接。
我有这个错误:
Failed to load https://api.mydomain.com/socket.io-client/?EIO=3&transport=polling&t=M8vzD5C: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:3000, *', but only one is allowed. Origin 'http://localhost:3000' is therefore not allowed access.
我在前端反应,后端 nodeJs 上运行,带有 pub sub socket-redis 连接这是我的响应标头:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since, Authorization
Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin: http://localhost:3000
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 104
Content-Type: text/plain; charset=UTF-8
Date: Sun, 18 Mar 2018 16:19:12 GMT
Server: nginx/1.10.3 (Ubuntu)
我可以知道我做错了什么显然可以建立连接,但它会立即中断并且不断尝试重新连接循环(我知道为什么)但是为什么我的响应标头会有多个值?
nginx - socket.io 所需的 NGINX 配置指南
下面的代码位于我在 nginx 中启用站点的文件夹下..
但是,我“add_header 'Access-Control-Allow-Origin' '*';”的行 和 add_header "'Access-Control-Allow-Credentials' 'true';" 在 if 语句导致我的套接字有多个标题之后。我可以寻求解决此问题的建议吗?
node.js - 以js格式创建远程socket.io客户端
我正在使用带有 nodejs 服务器的 sockets.io 在客户端和服务器之间发送/接收事件。它在本地 pc 上运行良好,但是当我必须将远程客户端连接到它并且我不需要使用前端模板文件或 html 时问题就来了. 在这种情况下,我如何定义 io() 对象,即套接字连接,因为没有它我无法访问我的节点服务器。目前我已经在远程客户端上创建了一个 js 文件,它看起来像这样:
node.js - Redis pub/sub scaling,Node Js 上的 Socket.io
我使用 socket.io 和 redis pub/sub 在 Node Js 上开发了多人回合制应用程序。
关于我的实现的简要说明如下:
多人回合制游戏使用用于 redis pub-sub 的 socket.io-redis 适配器在 ALB 上扩展。
我的并发用户群约为 40 万,因此我需要扩展 redis pub-sub,因为它也是单个节点。
我浏览了以下链接:
https://www.youtube.com/watch?v=6G22a5Iooqk
https://groups.google.com/forum/#!topic/redis-db/B0_fvfDWLGM
谁能详细说明我应该如何进行。
socket.io-redis - 如何从一个节点中的多个套接字获取数据到另一个节点中的另一个套接字
基本上我的问题在下图中的 (4) 中提到,但我试图检索保存在不同节点的套接字中的信息,我如何从不同节点的套接字中检索数据?
laravel - laravel echo 监听套接字?不是变量?
queue.blade.php
应用程序/事件/Queue_number.php
控制器
我收到了来自 Events Queue_number.php 的控制台
我不知道为什么消息和 s_number 是正确的,但其他像 city 和 p_id 是空的,未定义的?
对象键是 message,s_number,socket
为什么显示'socket'这个关键词?
如何解决问题以获取这两个变量 $city 和 $p_id?
感谢任何帮助。
laravel - Laravel 与 Laravel 护照身份验证相呼应
我尝试创建私人聊天,但在连接时我得到:在此处输入图像描述
我的 laravel-echo-server.json:
我的 bootstrap.js:
在邮递员上,我检查了一些 http api 路由并看到了很好的答案
有人可以帮忙吗?
node.js - 将共享对象附加到 Socket.io Room
我正在创建一个可以有许多游戏房间的多人游戏,并且我想为每个房间关联一个游戏对象(或游戏状态);我正在使用 NodeJS、Socket.io、socket.io-redis(不确定是否需要这个)。
为了更清楚,我也在使用 Typescript。
我尝试使用 socket.io-redis 的remoteJoin()
功能并通过使用成功将游戏对象设置到房间
io.of('/').adapter.rooms[<roomId>].game = Game
.
但是,我读到这不是设置房间宽对象的正确方法。
创建房间的事件
加入房间的事件
事件发生了什么create-game
:
- 传入的数据用于创建一个
Player
- 和一个
Game
物体 - 然后
player
添加到game
对象 - 最后,
game
对象被添加到房间
事件发生了什么join-game
:
- 传入的数据用于创建一个
Player
- 该
Game
对象是通过从房间中检索它来创建的 player
被添加到游戏对象
经过无数天/周?搜索时,我偶然发现了这个 Stackoverflow 线程:socket.io, how to attach state to a socket room
这个答案的意思是基本上不做我上面做的事情。他们的建议是创建自己的数据结构(甚至不知道如何开始这样做)。
我发现的其他答案说只是在服务器中创建一个全局变量,但同样,其他人说这是不好的做法(我也这么认为)。
另一个流行的答案是将游戏存储在 Redis 中,但 Redis 不能保存复杂的 Javascript 对象。我现在 Redis 可以通过hmset()
函数保存哈希数据,但我发现这不适用于像Game
对象这样复杂的东西,包括函数、构造函数和 getter/setter。
另一个突出的答案是仅在“回合”后将游戏存储到数据库中,但在我的情况下,一旦游戏结束,房间就会关闭并且相关的游戏会被销毁;我不需要在“保存游戏”的意义上坚持这个游戏。