0
我们正在一个项目中使用一些微服务。
我们有一个微服务(A),它获取和保存数据,并向RabbitMQ发布消息,声明新数据已经进入(使用CouchDB _id),以便另一个微服务(b)可以处理它。Node.js + RabbitMQ + Socket.io
问题出在第三个服务,我们有一个需要在'实时'更新的前端。
我们使用Socket.io进行客户端更新,但node.js实例也从A获取更新。
后来是如下:
- RabbitMQ message comes in
- Order is being retrieved from A (HTTP Request)
- Data is processed (remapping for user interface, bla bla bla)
- Data is sent through Socket.io to the client.
我的问题是,我怎么在节点做干净?
我想拆分文件(ofcourse),使每个模块自己创建一个处理程序,它'知道'RabbitMQ和Socket.io,因此它可以处理数据并在客户端发送消息时备份队列已经完成了需要处理的数据以及其他方式。
如果需要更多信息,请告诉我。
不确定你在问什么?你不能根据事件区分任务吗? socket.io具有“连接”,“离开”等消息,然后可以解析为api模块。你甚至可以在调用前加上消息,即'io_join',然后在你的api模块中,你可以使用一个对象来处理不同的事件消息。 – Data
问题是我不知道谁不让RabbitMQ和Socket.io互相“知道”,但只知道处理程序 – CreasolDev
传入的HTTP请求和来自socket.io的套接字之间的引用是什么?如果没有参考,数据应该如何发送到正确的套接字客户端?我想通过socket.io来订购,而不是HTTP请求将是更好的选择,然后... – Tobi