名字
同步消息指的是,A给B发送一条消息后,在原线程中等待B给出一条对应的响应消息,用其它网络框架实现这样的功能,需要开发人员自己精通多线程间的通讯,极易发生死锁、死等等现象。t-io已经内置了发送同步消息的能力,开发人员可以像调用方法那样使用
@Override
public ByteBuffer encode(Packet packet, TioConfig tioConfig, ChannelContext channelContext) {
...
buffer.putInt(packet.getSynReqNo());
buffer.putInt(packet.getSynRespNo());
...
}
@Override
public CluPacket decode(ByteBuffer buffer, int limit, int position, int readableLength, ChannelContext channelContext) throws TioDecodeException {
...
packet.setSynReqNo(synReqNo);
packet.setSynRespNo(synRespNo);
...
}
CluPacket cluPacket = new CluPacket();
CluPacket respPacket = Tio.synSend(channelContext, cluPacket, 5000L);
if (respPacket != null) {
log.info(respPacket);
}
CluPacket respPacket = new CluPacket();
// 这一行代码是精髓
respPacket.setSynRespNo(reqPacket.getSynReqNo());
Tio.send(channelContext, respPacket);
最新评论 我的评论
t-io为本站提供HTTP、WebSocket、Socket、页面渲染与压缩等服务,nginx为本站提供反向代理服务
© 2017-2023 钛特云 版权所有 | 浙ICP备17032976号 | 浙公网安备 33011802002129号