netty客户端连接服务端时,怎么附带一些信息,比如id等,客户端、服务端代码怎么实现啊?
不知道你这个问题是否已经解决, 如果还没有解决的话:方案1 (异步处理)
在数据发送过后,给ChannelFuture
添加监听器,用于监听此次发送的结果,当出现异常时,对异常进行处理。
static void send(Channel channel, UserInfo data) {
//连接成功后发送数据
ChannelFuture channelFuture1 = channel.writeAndFlush(data);
channelFuture1.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
Throwable cause = future.cause();
if (cause != null) {
cause.printStackTrace();
}
}
});
}
方案2 (不推荐,根据业务决定)
在数据发送过后,同步等待发送结果,判断是否存在异常。
static void send(Channel channel, UserInfo data) {
//连接成功后发送数据
ChannelFuture channelFuture1 = channel.writeAndFlush(data);
while (!channelFuture1.isDone()) {
try {
//超时时间示例值,根据业务决定
boolean notTimeout = channelFuture1.await(50);
} catch (Exception e) {
log.warn(e.getMessage());
}
}
Throwable cause = channelFuture1.cause();
if (cause != null) {
cause.printStackTrace();
}
}