java - 用户连接的全局架构存在

标签 java javascript spring node.js sockets

我之前有一个项目,我需要将数据(websocket)推送到客户端,我使用了 spring 和气氛框架(java 中 websocket 的抽象)。但最后我认为实际上java中的websocket应用程序还不够好,因为我在另一个项目中使用了nodejs&socket.io。编写推送数据 API 非常简单,也是一次很棒的体验。

所以现在我正在考虑一种架构,我想与您分享,看看它是否是一个好的实践。

我有我的服务器 spring、客户端和 nodejs/socket.io。我想使用nodejs来存储套接字和推送事件。 因此,假设服务器必须将数据推送给特定用户,我将在 Nodejs 中调用一个服务,然后他将推送它。

因此,nodejs API 只会将请求重定向到用户,仅此而已。

这是一个好的做法吗?

谢谢你的想法

最佳答案

我建议您将java应用程序服务器和nodejs(套接字服务器)解耦并使用中间件(消息系统..)进行通信

Exmaple architecture

假设您的 Java 应用程序正在 http://abc.com:1234 上运行和socket.io http://abc.com:5678 。然后,当页面打开时,您可以订阅套接字服务器。

一旦您有一些数据要推送,请将其放在中间件上。 SocketIO 服务器将从那里获取它并推送到所有订阅的浏览器客户端。

关于java - 用户连接的全局架构存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19179551/

相关文章:

java - 在映射结构中映射时是否可以从属性文件加载源值和目标值?

javascript - 如何避免将双空格算作单词?

java - Spring Boot - 在类路径资源中创建名称为 'dataSource' 的 bean 时出错

java - 为什么Math.max和Math.min不能相加或相减?

java - 获取 "com.google.firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String"

javascript - 通过socket在android和nosejs之间发送文件

javascript - 向字符串化 JSON 对象值添加引号

java - Hibernate的ManyToMany简单使用

java - 每天在服务内生成一个 token

java - 在 Java 中将数组排序为第二个数组