草庐IT

m_Socket

全部标签

node.js - 在 node.js 中,socket.io 使用 redis - 这个 redis 是否可用于正常的 redis 使用?

我的理解是socket.io使用redissocket.set('var',val1);varval2=socket.get('var');但是redis不在node_modulessocket.io是否使用它自己的redis私有(private)实例?如果没有,是否可以通过redis客户端访问存储在redis中的socket.io值? 最佳答案 Socket.io使用Redis来存储有关套接字的信息。如果同一个应用程序有多个socket.io服务器,则需要使用它。显然,如果您不覆盖socket.io的数据,您可以将此redis用于

node.js - socket.io + redis - 幽灵套接字 - 这可能吗?

我用node.js、socket.io、集群、redis制作了一个应用程序,它在8个进程中运行。是否有可能每个进程都有一些幽灵套接字?我的意思是已经断开连接但不是每个进程都知道它并且仍然有它们的套接字。我的应用在连接事件中向客户端发送在线计数(来自两个房间的socket计数)。名为“HEAD”的进程每3秒向所有套接字“在线计数”发送一次。我为什么要告诉它?当我在浏览器中连接到应用程序时,首先从8个进程之一获取“在线计数”,设为60,然后3秒后,我从HEAD进程获取“在线计数”,但它是非常不同的数字。所以我认为有些事情不会通过Redis同步到进程。可能吗? 最

python - Tornadio2 + Socket.io 负载测试

我正在使用redis、tornadio2和socket.io构建一个实时应用程序。它在我的本地机器上运行良好,但在投入生产之前,我想做一些压力测试。这样我就可以知道一个tornadio2websocket连接实例可以处理多少个客户端。我在Google上搜索过,但没有找到任何现成的工具来测试它。我应该自己编写这个脚本,还是我错过了什么,是否有用于此目的的工具?谢谢! 最佳答案 您可以使用我用来测试node.jssocket.io服务器(和SockJS服务器)的基准测试工具。TornadIO2将比sockjs-tornado慢15-20

node.js - 如何将属性关联到 Redis Store 中的 socket.io 对象?

我正在使用Nodejs和Socket.io开发一个复杂的游戏,我需要在内存中存储socket.io对象,并将属性分配给套接字对象(比如说一个名称,一个来自套接字的某些操作的计数器等)在下面的代码中,我展示了我想要实现的目标的示例。我将所有套接字存储在一个数组中,还有另一个数组存储套接字的名称属性。任何时候如果我收到名称请求,我都可以从内存中的数组中选择名称。但现在我的用户太多了,我需要在多台服务器上平衡我的应用程序。所以我不能在内存中存储对象和属性。我需要将它们存储在数据库中。我打算使用Redis。此链接说明如何将RedisStore用于套接字-https://github.com/L

php - 你如何将 php session 数据传递给 socket.io?

我正在编写一个应用程序,用户可以同时从多个浏览器登录,并在页面加载时与服务器上的socket.io建立连接。我想跟踪所有客户端套接字ID,socket.id,在一个redis集中,其键看起来像userId:???:socketClientIds登录用户。我要SADD通过ajax调用php脚本后设置为redis的套接字客户端ID。由于我将用户ID保存在phpsession变量$_SESSION['userId']中,我可以将此用户ID的值传递给socket.io的安全/实用方法是什么我可以将客户端ID添加到集合中吗?client.sadd("userId:???:socketClient

python - django-websocket-redis 使用 unix socket 连接 redis

我正在使用django-websocket-redis并且在我的settings.py中有这个:WS4REDIS_CONNECTION={'host':'unix://var/run/redis/redis.sock','db':0,#'port':16379,#'password':'verysecret',}我尝试了“主机”参数的所有可能组合,但无法使用unix套接字而不是tcp进行连接。我总是收到这条消息:ConnectionError:Error-2connectingto/var/run/redis/redis.sock:6379.Nameorservicenotknown.

javascript - Socket io Nodejs-在用户打开多个选项卡时进行管理

我正在尝试在我的应用程序中进行聊天,但我遇到了一个不知道如何解决的问题!这是塞纳里奥:我们有很多经过身份验证的用户,所以他们都有一个唯一的ID,我想实现像Facebook这样的聊天,这样每两个用户就可以互相聊天。为此,我有一个包含内容的server.js文件:varapp=require('express')();varserver=require('http').Server(app);vario=require('socket.io')(server);varredis=require('redis');varusers=[];server.listen(8890);io.on('

php - 使用 PHP Sessions 进行私有(private)聊天(PHP + Socket.io)

我正在开发一个使用php+socket.io的私有(private)消息系统的网站。从一开始我就使用socket.emit将sender_id、recipient_id和text传递给socket.io但后来意识到这很容易被篡改,并想以某种方式使用我的phpsession来确保sender_id确实是sender_id。我现在有以下设置,但我真的不明白如何将session从index.php传递到app.js,然后连接到app.js中的redis-server以获取包含user_id的PHPSESSID。服务器1运行nginx+php-fpm(index.php)服务器2使用socke

node.js - 如何实现 Laravel、node.js、socket.io 和 redis 以使用数据库创建实时聊天/通知

我已经花了3天时间阅读、观看有关WebSockets、socket.io、node.js等的教程。基本上,我是一名Laravel开发人员,对所有其余组件只有一个基本概念。遗憾的是,在这3天之后,我并没有想到实现这个架构的所有逻辑步骤。我将尝试解释我的理解,请您纠正我。所以:WebSockets-是客户端和服务器之间的双向连续连接。它使用了另一个端口,基本上它不是HTTP/S连接。要像我说的那样制作这种应用程序,我们还需要一台服务器,我知道为什么,但这是Node.js。在这个Node.js服务器上,我们应该安装socket.io(服务器端包)和Redis。然后,我们需要添加客户端sock

node.js - 如何在多个服务器上扩展 socket.io 应用程序?

我已经阅读了很多关于custering、redis的资料,但我找不到任何真实的示例。我有一个简单的socket.io应用程序,我需要将此应用程序扩展到许多服务器。看起来socket.io和RedisStore是解决方案。有没有人有关于他如何在许多服务器上使用socket.io的真实世界摘要? 最佳答案 您需要npminstall包socket.io-redis。然后通过命令redis-server启动服务器。将以下行添加到您的代码中。vario=require('socket.io')(3000);varredis=require(