当前位置: 首页 > 知识库问答 >
问题:

使用http-kit和Clojure处理“房间”

冉伯寅
2023-03-14

我有一个使用http-kit服务器的小型WebSocket应用程序,我对自己感觉很好。现在我想添加不同的“房间”(列表应该是动态的)到我的应用程序,但我很难找到任何文档或示例项目。我并不害怕旋转我自己的解决方案,但依靠别人的经验是很好的。有人知道类似实现的例子吗?

2)我可以在每次打开新房间时建立一个新的套接字endpoint,并将新的URL发送回前端(或者如果房间已经打开了,则发送现有的URL),然后丢弃旧的套接字,并将新的套接字打开到新的URL。在建立新的endpoint时会有一些开销,但之后我可以只向订阅它的每个频道广播。

还有其他的想法或投入吗?我对WebSockets和Clojure编程还是个新手,所以我觉得可能有更好的方法。

共有1个答案

曹鹏海
2023-03-14

您的两个解决方案都是完全好的,虽然#1会稍微改进,通过在状态中保持一个传统的地图,所以您将

  • 来自Chan-->房间的地图
  • 来自房间的Antoher地图-->Chans的矢量。
 类似资料:
  • 我有一个漂亮的小WebSocket应用程序使用服务器,我对自己感觉很好。现在我想添加不同的房间(列表应该是动态的)到我的应用程序,但我很难找到任何留档或示例项目。我不怕编造自己的解决方案,但依靠别人的经验很好。有人知道类似实现的任何例子吗? 我可以想到两种方法: 1) 我可以将“房间”与频道一起保持在状态,然后发送 到与该房间关联的频道。这似乎是最简单的方法,但每次我广播消息时,我都会过滤每个附加

  • 我有一个小Clojure应用程序,它使用http工具包向服务器发送一些http post请求。我希望通过代理P路由https POST请求,即,我希望流量像应用程序一样- (这是因为目标主机X基于IP限制访问) 这可能吗? 此外,该应用程序运行在ubuntu服务器上,是否有可能通过系统级配置使http工具包使用代理服务器?但我更喜欢其他过程不受影响。

  • 本文向大家介绍clojure 使用http-kit创建新的Ring应用程序,包括了clojure 使用http-kit创建新的Ring应用程序的使用技巧和注意事项,需要的朋友参考一下 示例 Ring是用于Clojure HTTP应用程序的事实上的标准API,类似于Ruby的Rack和Python的WSGI。 我们将它与http-kit网络服务器一起使用。 创建一个新的Leiningen项目: 将h

  • 奇怪的是,它在上次系统重启之前工作得很好。 这是我的项目。clj

  • 高性能,高并发Clojure HTTP Server & Client。首页:http://http-kit.org  HTTP Server: 高性能, 在普通机器上,每秒处理数万个请求 高并发支持。采用异步IO + 线程池的方式,在普通机器上,数十万并发 支持HTTP长连和WebSocket HTTP Client: keep-alive:极端情况下,keep-alive可提高一倍性能 异步IO + 线程池 API 友好