方法
我建立與ZeroMq異步IM /聊天應用,只是作爲一個學習鍛鍊,使用以下方法異步即時消息聊天。如何實現與ZeroMq
服務器使用兩個ROUTER插座,類似於lbbroker.java
,從incoming
讀取和寫入outgoing
,而操縱信封用於遞送到預期的接收器。
客戶端使用socket.setIdentity()
設置唯一標識,並使用PULL和PUSH套接字(而不是REQ/REP)異步發送和接收聊天消息。我已經構建並測試了代碼,一切似乎都正常。
問題
是利用PUSH的/在路由器中拉一個有效的方法?
爲什麼聊天客戶端在脫落時無法連接,然後重新連接?
如果Sally斷開連接然後重新連接,她將無法再接收聊天消息,此時Sally變得無法訪問。在調試服務器之後,我確認它肯定會發送帶有正確信封的消息以便發送消息。我還使用outgoing.setRouterMandatory(true)
來確保服務器沒有丟棄未處理的消息,但沒有發生錯誤。