我之前有一个项目,我需要将数据(websocket)推送到客户端,我使用了 spring 和气氛框架(java 中 websocket 的抽象)。但最后我认为实际上java中的websocket应用程序还不够好,因为我在另一个项目中使用了nodejs&socket.io。编写推送数据 API 非常简单,也是一次很棒的体验。
所以现在我正在考虑一种架构,我想与您分享,看看它是否是一个好的实践。
我有我的服务器 spring、客户端和 nodejs/socket.io。我想使用nodejs来存储套接字和推送事件。 因此,假设服务器必须将数据推送给特定用户,我将在 Nodejs 中调用一个服务,然后他将推送它。
因此,nodejs API 只会将请求重定向到用户,仅此而已。
这是一个好的做法吗?
谢谢你的想法
最佳答案
我建议您将java应用程序服务器和nodejs(套接字服务器)解耦并使用中间件(消息系统..)进行通信
假设您的 Java 应用程序正在 http://abc.com:1234 上运行和socket.io http://abc.com:5678 。然后,当页面打开时,您可以订阅套接字服务器。
一旦您有一些数据要推送,请将其放在中间件上。 SocketIO 服务器将从那里获取它并推送到所有订阅的浏览器客户端。
关于java - 用户连接的全局架构存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19179551/