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