使用https://github.com/mrniko/netty-socketio时我正在使用队列和线程池来处理接收到的数据(很抱歉,当我将代码放在不同的行上时,格式化 stackoverflow 会提示空格):
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> actionQueue.add((connection) -> this.onNewSellOrder(connection, client, data, ackSender)));
问题是 ackSender
不再可用,因为线程池稍后会处理请求。
由此产生的问题是:在netty的socket.io实现中是否可以延迟发送ack?
最佳答案
是的,可以手动处理确认发送。
您应该在配置中将确认模式切换为手动。
config.setAckMode(AckMode.MANUAL)
自己发送ack:
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> { if (ackRequest.isAckRequested()) { ackRequest.sendAckData(...); } });
关于java - 在netty的socket.io实现中是否可以延迟发送ack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573745/