草庐IT

Socket聊天

全部标签

javascript - 同步多个 Socket.io 客户端

我正在构建一个应用程序,它在前端使用Angular.js,在后端使用Express上的Socket.IO和Redis。套接字的基本用法是允许一种类型的用户将项目推送到由第二种类型的用户组使用的列表。一个简单的例子:学生可以将消息推送到类(class)列表中,只有本类的老师可以看到该列表。我正在尝试在不同时间连接的多位教师之间同步列表,列表存储在Redis存储中,我想知道同步客户端的正确方法是否:一个。在每次更新时发送列表-省去了必须在客户端中管理同步和潜在的不匹配的需要。B.仅在连接时发送列表并对连续事件应用增量更新。我确信这在过去已经得到解决,因为它似乎是套接字通信的一个非常基本的问

node.js - 'adapter' 中没有方法 'io'(node.js、heroku、RedisCloud、socket.io)

在Heroku上使用RedisCloud和node.js允许(future)扩展到多个dyno。按照以下步骤让Redis工作:https://devcenter.heroku.com/articles/rediscloud#using-redis-from-node-js例如,下面带有注释“Prints'bar'”的行确实​​将“bar”写入控制台。然后按照此添加用于缩放的socket.io-redis:https://github.com/Automattic/socket.io-redis上面应该允许我使用类似下面的东西:io.adapter(redis({host:'localh

node.js - 如何在 Node js 聊天应用程序中存储用户的 session 信息?

我使用nodejs和socketio构建了一个基本的聊天模块。我知道javascript但在Node和套接字领域很新。现在我要将这个聊天模块集成到我们的一个应用程序中,不同组织的员工将能够在其中相互交流。现在,我面临的问题是——无法知道在哪里存储连接用户的session信息。我想做的是,假设有2个组织A和B。当组织“A”的任何员工将连接到Node套接字服务器时,我将为组织A创建一个session变量(可能是一个数组)&将该员工存储在该数组中。组织B也一样。通过这种方式,我想为每个组织创建一种桶结构,相应的员工将在这些桶中。因此,当组织的任何新员工连接到套接字服务器时,我将检查该员工属于

使用 vue-3-socket.io 插件以及node.js实现实时聊天(1)

 这篇文章使用选项式API的写法,以实现群聊和私聊为主客户端自然是对应使用vue3框架,服务端使用node.js配合express、http、socket.io、file等库来实现,具体如下:一、完成客户端部分的配置代码1、下载所需的依赖npminstallvue-3-socket.iosocket.io-client2、做socket客户端配置//引入相关依赖importVueSocketIOfrom"vue-3-socket.io";importSocketIOfrom"socket.io-client";//创建一个Socket连接constsocketio=newVueSocketIO

redis - Socket.io redis 数据如何存储和清除

我在使用socket.io的heroku上托管一个应用程序。它正在使用套接字,而我正在使用heroku4standard1Xdynos。所以为此我使用了redistogo服务和socket.io-redis插件。它工作得很好,但我想知道当套接字断开连接时,socket.io-redis是否也会从redis数据库中清除数据。Herokuredisgoto服务只提供20MB的数据存储。.请指导socket.io-redis如何插入和清除redis数据库中的数据。 最佳答案 假设您指的是https://github.com/Automat

Node.js、Socket.io 多用户应用程序——存储用户 session ?

我正在构建一个Node.js/Express应用程序来处理(可能)多达数千个并发用户。他们将输入信息(存储在DynamoDB中),然后分配到不同的房间进行交互。我将使用Socket.io来捕获和发出用户在这些房间中进行的操作(例如聊天)。问题我不确定在用户浏览应用程序和登录/注销时跟踪用户的最佳方式。我们无法在服务器上存储他们的session数据(例如room_id、user_settings),尤其是当服务器崩溃时。我有两个想法可以使用一些建议:直接从DynamoDB存储和检索session数据。如此频繁地访问数据库似乎会产生很高的开销。使用像Redis这样的内存缓存,并在写入时刷新

python - 为什么在 Socket 和 TCP 上从 Redis 获取数据非常慢?

我有365集。每个都是指从2011-01-01到2012-01-01的一天。在每个SET中,我都有8000个值。它最多有3到5个字符,例如:271。当我在python中发出SMEMBERS命令时,大约需要17.7秒!redis-cli中的示例结果:$SMEMBERSprefix:2011-01-011)"2442"2)"5483"...7999)"7911"8000)"42968"在带有Redisversion='2.10.3'的python中,我使用套接字而不是TCP以获得更好的性能。INFO命令提供有关服务器、内存的以下信息:#Serverredis_version:2.8.19r

node.js - Redis Pub/Sub 聊天室

我是Redis发布/订阅的新手,所以请多多包涵。我正在尝试创建一个IRC,用户可以在其中创建自己的聊天室,有点像Gitter。以下是我到目前为止所做的。我通过用户名将用户订阅到不同的channel只是为了测试。事情是当我发布到channelx时,订阅到channely的客户仍然得到相同的消息..我正在使用redis-cli和PUBLISH命令发布。functionhandleIO(socket){functiondisconnect(){console.log("Clientdisconnected");socket.broadcast.emit("userd/c",socket.us

通过 SSL https 连接的 Laravel IO Socket 和 redis

目前有带laravel广播的IO套接字和redis完美运行。直到我在域上设置SSL证书。我在端口3001上运行了redis-server。然后有个socket.js设置监听3000我在页面上的JS我通过io('//{{$listen}}:3000').任何有关如何通过https实现此功能的指导都将非常有用。我可以只使用443作为端口吗?谢谢。我的socket.jsvarapp=require('express')();varhttp=require('http').Server(app);vario=require('socket.io')(http);varRedis=require

node.js - NodeJS + Cluster + Socket.IO 如何正确创建游戏房间?

我正在制作一个简单的游戏引擎,它实现了房间操作。我想了很多,但仍然怀疑我没有以正确的方式腾出房间。这是场景。1)有一个静态房间,用户可以在其中“注册”。2)注册一定数量的用户后,创建动态房间,将一定数量的用户放入该房间,让他们退出静态房间。因此,如果我们在多个实例中运行它,假设我们正在等待2个用户。2个用户加入静态房间->创建新房间(在redis中)->让这两个玩家进入那个房间(订阅)->让这些玩家离开静态房间(类队列系统)。现在我觉得是个问题。2个用户加入静态房间->在创建新房间之前,另一个玩家加入静态房间(不同Node实例)->创建新房间->将两个玩家移到那里->另一个实例仍然认为