【发布时间】:2022-02-13 20:24:59
【问题描述】:
我们正在构建一个 slack 克隆,其中可能有许多组织,每个组织都有多个房间或通道,如 slack。
我有 2-3 个 mongo 模型来保存消息:
model conversations{
id: Int
participants:[userIds]
date:Date
lastMessage:Message
}
model message {
id:Int
body:String
conversationId: Conversation
date:Date
}
model User {
id:Int
name:Sting
organisationId:Organisation
}
model Organisation {
id:Int
name:String
}
每个组织可以有很多房间/频道,用户可以在那个房间/频道中。
我正在考虑为每个组织使用new socket.io namespace。每个命名空间都使用socket.io rooms 作为频道,用户可以在其中订阅房间并进行交流
我不确定客户端如何为每个组织创建命名空间,每个命名空间如何创建房间,因为socket.io 客户端没有房间概念。
我只希望有人可以帮助我了解如何在客户端和服务器端的套接字中实现命名空间和房间。
我知道如何监听事件和发送事件,但不知道如何去做。
【问题讨论】:
标签: node.js socket.io chat slack