我有一个使用http-kit服务器的漂亮的小WebSocket应用程序,我对自己感觉很好。现在我想将不同的“房间”(列表应该是动态的)添加到我的应用程序中,但我很难找到任何文档或示例项目。我不怕旋转自己的解决方案,但依靠别人的经验是很好的。有没有人知道类似实现的例子?
我可以想到两种方法:
1)我只需将“房间”与频道一起保持在状态,然后只需send!到与该房间相关的频道即可。这似乎是最简单的方法,但每次广播消息时,我都要过滤每个附加的频道。
2)我可以在每次打开一个新房间时构建一个新的套接字端点,并将新的url发送回前端(或者如果房间已经打开,则发送现有的URL ),然后它将丢弃旧的套接字,并打开一个新的套接字连接到新的URL。在构建新端点时会产生一些开销,但这样我就可以向订阅它的每个通道广播。
还有其他想法或意见吗?对于使用WebSockets和Clojure进行编程,我仍然是个新手,所以我感觉可能有更好的方法。
发布于 2018-04-28 07:21:29
你的两个解决方案都是完全好的,尽管#1会通过在状态中维护一个额外的地图来略微改进,这样你就会有
https://stackoverflow.com/questions/50070067
复制相似问题