我想创建一个包含多个房间的聊天应用程序。
我有带表的Postgres数据库:用户,聊天,chat_users, friend ,friend_requests,chat_invites,消息。为了实时通知用户,我使用了存储在map中的websocket,每个websocket都有自己的ID(始终是用户的ID)。为了通知一组客户,我将连接ID存储在Redis集中,每次我需要将event
发送到 session 室时,我都会通过[] int64中的smembers
获得成员,并通过数组将其发送给每个迭代的成员。这是一个好方法吗?
最佳答案
老实说,您的方法似乎有些过分设计。
我将从创建最简单可行的方法开始-不使用Postgres或Redis。服务器可以将其数据保存在某些受并发锁保护的映射/结构中。无论如何,客户不需要任何这些。
一旦有了基本的工作,就可以开始考虑更多涉及架构来满足特定需求。
这将帮助您将问题一分为二,变得更小,更易于管理。
关于go - 带有Websocket和Redis的多房间聊天应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60816319/