问题标签 [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.

0 投票
1 回答
17189 浏览

redis - 使用 socket.io-redis 的示例

大家好,感谢您的时间和帮助。

我需要一个使用 socket.io-redis 的简单示例,请发表评论。我阅读了文档,但我不明白。谢谢,

0 投票
0 回答
67 浏览

node.js - 如何通过 socket.io-redis 让所有套接字连接到 2 个不同的节点上?

我正在将套接字连接到端口 8100 和端口 8200。他们都使用 socket.io-redis 模块来共享粘性会话,我如何获得网站上的连接总数?

0 投票
0 回答
385 浏览

node.js - 如何使用 socket.io-redis 获取所有连接的套接字?

我有多个节点通过 socket.io-redis 运行,一切正常,因为我从另一个服务器向 1 个服务器发出事件。

我想将多个服务器上连接的套接字的完整列表放在一起,因为我必须相应地操作它们的键,就像在简单的 socket.io 的 io 对象中一样,我得到一个包含所有套接字的哈希图。

0 投票
2 回答
1788 浏览

node.js - 如何在节点 js 中同步两个服务器中的 socket.io 客户端总数

我正在使用 node js 4.2.6 版本并使用 1.4.5 socket.io 版本。我正在使用 socket.io-redis 模块作为 socket.io 的适配器。我有两台服务器,端口分别为 3000 和 4000。我添加了计时器来打印连接套接字的总数,如下所示。

在一台服务器上,我得到了正确的客户端计数,但在另一台服务器上,我得到了 0。如何在服务器之间同步 socket.io 客户端。

0 投票
1 回答
1367 浏览

node.js - socket.io 客户端未从服务器接收 io.emit(使用 redis 适配器)

我最近更新到 1.4.5 时出现了一个问题。(这已经工作了 2 年)。因此,当我向client-msg服务器发送 a 时,服务器会接收到 msg,然后应该将 msg 发送回所有连接的套接字(包括它自己)。我现在遇到的问题是我不能再向所有套接字发送消息。如果我将 io.emit 更改为 socket.emit 我收到server-response就好了,但当然,这仅适用于那个套接字。我什至去了(稀疏)socket.io 文档并尝试使用发射器库,但没有任何运气。我错过了什么?

服务器端:

客户端:

0 投票
1 回答
3844 浏览

node.js - Laravel echo、socket.io 和 laravel-echo-server 不起作用

这可能是我遇到过的最令人沮丧的事情,可悲的是,这可能是我做的一些愚蠢的事情。

以下是我正在使用的三件事的链接:

这是我的问题:我的网站不断地走这条路线:http://192.168.10.10:6001/socket.io. 我不知道它为什么会走这条路线,因为我没有socket.io在我的代码中的任何地方定义该部分。这是我在 bootstrap.js 中用于实例化 Laravel Echo 的代码。

这是我的 socket.js 文件(node.js)中的代码:

到目前为止,这里没有任何可能出错的地方。这是链接回cdn的错误消息。奇怪的是,更改window.Echo主机会更改域,但我不知道如何更改 socket.io 部分。

截屏:

这让你想知道,它是否在 Socket.io 文件的某个地方进行了硬编码?这是我第一次使用 Socket.io,所以我无从得知。也许在我放入 CDN 之后,我需要做一些额外的设置?Laravel 文档说要做的就是添加脚本标签,而 Laravel 以拥有出色的文档而闻名。

任何专业知识将不胜感激,请赐教!

更新

MMMTroy 建议我在 vm 中启动我的 socket.io 服务器,而不是我的普通计算机。这很有意义,并且可能是问题所在。但现在我遇到了另一个问题。之前,我只是启动服务器(在我的普通计算机上),它会说:EchoServer: "Server running at http://192.168.10.10:6001". 现在,当我尝试在我的 vm 上启动服务器时,它返回此错误:

我该怎么办这个错误?我查看了 laravel-echo-server emitPresenceEvents 函数,但我不知道发生了什么。

谢谢。

固定的!

我终于修复了它,它与节点版本有关。我将宅基地节点更新到最新版本并修复了它。

0 投票
0 回答
175 浏览

node.js - Socket.io-redis - 如何在进程之间进行通信?

我使用集群来制作一大堆“区域”。我也有媒人将连接分类到区域中。客户应连接到媒人,媒人决定将客户放入哪个区域。

此时,客户端已连接到 matchmaker - 如何将来自客户端的事件转发到所需的区域?可以将它们发送到每个区域吗?

我知道 socket.io-redis 可以帮助我从一个进程向每个进程的客户端广播 - 每个进程都可以从一个客户端接收事件吗?

我将如何使用 socket.io-redis?

如何使区域可用于接收中继事件,但不可用于初始连接?也许区域应该接收初始连接,并以媒人中继到区域的相同方式中继到媒人。

长话短说,如果客户端有任何方法可以将事件发送到每个进程,或者某个进程可以将事件发送到其他进程,我可以从那里弄清楚。

0 投票
1 回答
740 浏览

node.js - 在 azure web 服务上使用 socket.io-redis

目前我已经将一个节点应用程序部署到 azure app 服务。我目前的应用服务计划有两个核心处理器。我在 iisnode.yml 文件中设置了 nodeProcessCountPerApplication: 2 。现在我已经实现了 socket.io 功能来实时更新 UI。使用单一进程它工作正常。当我使用 nodeProcessCountPerApplication: 2 问题开始。我收到以下错误-

我尝试使用 socket.io-redis 解决这个问题。这是使用redis的代码-

但是更改后出现以下错误-

我错过了什么。珍惜你的时间。

0 投票
1 回答
365 浏览

nginx - 在多台服务器上使用 socketio 和 redis

我正在尝试在多台服务器上使用 socketio,在整整一周的时间里,我在不同的平台上尝试了不同的解决方案,但它们都不起作用。

对于我的项目,我使用带有 iphash 的 nginx 负载平衡来将客户端保持在同一台服务器上,并广播到我使用 redis socketio 适配器的所有套接字。

我也尝试了这些项目,以查看它是否工作并了解它的工作方式,但是这个应该准备好使用的项目也不起作用。

https://github.com/h4t0n/socket.io-redis-appsample

和这个

https://github.com/evilstudios/chat-example-cluster

我尝试在 Windows 和 linux 上使用 redis,但没有区别。

我读到了我们需要使用“传输:['websocket']”的不同问题,有些人说它需要在客户端和服务器上的其他客户端上完成,我尝试了两种解决方案但它不起作用。

我没有收到错误或警告,事件根本没有发送到其他服务器上的套接字。

0 投票
1 回答
189 浏览

socket.io - 通过套接字 id 强制客户端断开连接

我想使用 socket.io-redis 通过套接字 id 强制客户端断开连接。我在谷歌尝试了很多研究,但旧主题中提到的方法不起作用。

比方说,我正在制作集群应用程序,我的代码目前在 cluster1 实例上运行(我也可以访问所有连接的客户端的套接字 id),但是客户端连接到 cluster2 实例。如何仅通过套接字 id 强制断开与该客户端的连接?