我之前有一个需要将数据(websocket)推送到客户端的项目,我使用了spring和atmosphere框架(java中的websocket摘要)。但最后我认为实际上java中的websocket应用程序还不够好,因为我将nodejs& socket.io用于另一个项目。编写推送数据api非常简单,也很棒。
所以现在我正在思考一个架构,我想与大家分享一下它是否是一个好的做法。
我有我的服务器spring,client和nodejs / socket.io。我想使用nodejs来存储de socket和push事件。 所以想象一下,服务器必须将数据推送给特定用户,我将在nodejs中调用一个服务,他会推送它。
因此nodejs API只会将请求重定向到用户,仅此而已。
这是一个好习惯吗?
感谢您的想法
答案 0 :(得分:1)
我建议你将java应用服务器和nodejs(套接字服务器)分离并使用中间件(消息系统......)进行通信。
假设你的java应用程序在http://abc.com:1234和http://abc.com:5678上的socket.io上运行。然后,当页面打开时,您可以订阅套接字服务器。
一旦你要推送一些数据,就把它放在中间件上。 SocketIO服务器将从那里获取它并推送到订阅的所有浏览器客户端。