2016-09-19 107 views
0

在使用https://github.com/mrniko/netty-socketio我使用的是隊列和線程池處理接收到的數據(約格式化計算器遺憾抱怨的空間,當我把在不同行的代碼):是否可以延遲在netty的socket.io實現中發送確認?

server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> actionQueue.add((connection) -> this.onNewSellOrder(connection, client, data, ackSender))); 

的問題是那ackSender不再可用,因爲線程池稍後處理該請求。

產生這樣的問題:是否有可能延遲在netty的socket.io實現中發送ack?

參見:https://github.com/mrniko/netty-socketio/blob/master/src/main/java/com/corundumstudio/socketio/AckRequest.java

回答

2

是有可能處理ACK手動發送。

  1. 您應該在配置中將確認模式切換到手動模式。

    config.setAckMode(AckMode.MANUAL)

  2. 發送ACK自己:

    server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> { 
         if (ackRequest.isAckRequested()) { 
          ackRequest.sendAckData(...); 
         } 
    });