推送模块

本文最后更新于 2 分钟前,文中所描述的信息可能已发生改变。

推送模块

和普通 Web 应用不同的是,基于 Servlet 的线程池模型不能高效地支持成百上千的 WebSocket 长连接。 Java 提供了 NIO 能充分利用 Linux 系统的 epoll 机制高效支持大量的长连接,但是直接使用 NIO 的接口非常繁琐,通常我们会选择基于 NIO 的 Netty 服务器。 直接使用 Netty 其实仍然比较繁琐,基于 Netty 开发我们可以选择:

  • Spring WebFlux:封装了 Netty 并实现 Reactive 接口;
  • Vert.x:封装了 Netty 并提供简单的 API 接口。

消息订阅与推送流程

消息推送流程

Quotation Module
LeetCode Biweekly Contest 152