是否可以在 netty 的 socket.io 实现中延迟发送 ack?
Is it possible to delay sending an ack in netty's socket.io implementation?
在使用 https://github.com/mrniko/netty-socketio 时,我正在使用队列和线程池来处理接收到的数据(很抱歉,当我将代码放在不同的行时,Whosebug 会抱怨格式问题):
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> actionQueue.add((connection) -> this.onNewSellOrder(connection, client, data, ackSender)));
问题是 ackSender
不再可用,因为线程池正在稍后处理请求。
导致问题:是否可以在 netty 的 socket.io 实现中延迟发送 ack?
是的,可以手动处理 ack 发送。
您应该在配置中将ack模式切换为手动。
config.setAckMode(AckMode.MANUAL)
自己发ack:
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> {
if (ackRequest.isAckRequested()) {
ackRequest.sendAckData(...);
}
});
在使用 https://github.com/mrniko/netty-socketio 时,我正在使用队列和线程池来处理接收到的数据(很抱歉,当我将代码放在不同的行时,Whosebug 会抱怨格式问题):
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> actionQueue.add((connection) -> this.onNewSellOrder(connection, client, data, ackSender)));
问题是 ackSender
不再可用,因为线程池正在稍后处理请求。
导致问题:是否可以在 netty 的 socket.io 实现中延迟发送 ack?
是的,可以手动处理 ack 发送。
您应该在配置中将ack模式切换为手动。
config.setAckMode(AckMode.MANUAL)
自己发ack:
server.addEventListener("NEW_SELL_ORDER", SellOrder.class, (client, data, ackSender) -> { if (ackRequest.isAckRequested()) { ackRequest.sendAckData(...); } });