代码实现
@onOpen
public void open(Session session, @PathParam(value = "liveid") String liveid,
@PathParam(value = "userid") String userid, @PathParam(value = "name") String name) {
this.session = session;
logger.error("进入 " + userid);
socketServers.forEach(client -> {
if (client.getUserid().equals(userid)) {
try {
logger.error("重复进入断开 " + userid);
client.getSession().close();
socketServers.remove(new Client(liveid, userid, name, session));
socketServers.add(new Client(liveid, userid, name, session));
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
socketServers.add(new Client(liveid, userid, name, session));
subscribeListener = new SubscribeListener();
subscribeListener.setSession(session);
subscribeListener.setUserid(userid);
subscribeListener.setName(name);
subscribeListener.setStringRedisTemplate(redisTampate);
channeltopic=new ChannelTopic(liveid);
//设置订阅topic
redisMessageListenerContainer.addMessageListener(subscribeListener,channeltopic);
}
取消某个订阅
if(subscribeListener!=null) {
redisMessageListenerContainer.removeMessageListener(subscribeListener);
subscribeListener=null;
}



