怎么把netty的链接通道存储到redis中这样后续可以通过key取出channel给客户端发消息
我们项目中大致是这么做的:
无论是自己写数据结构还是使用Jedis,大概都是有一个类似Map的结构。
建立一个Bean用于表示会话,此处暂且称之为Session。
在Session里引用netty的Channel。
在
channelActive
时将其放入redis。
有必要的话,可以将
channel.id().asLongText()
或
channel.id().asShortText()
作为Session的唯一标识@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
//可以将channel.id().asLongText()或channel.id().asShortText()作为Session的ID
Session session = Session.buildSession(ctx.channel());
//Session存入Redis
pushSession2Redis(session);
logger.info("终端连接:{}", session);
}
Session.java
import java.net.SocketAddress;
import io.netty.channel.Channel;
public class Session {
//Session的唯一标识
private String id;</