主要想要实现的功能是:在服务端把每一个连上来的客户端进行保存:
1、用于对指定的客户端进行指令下发;
2、对于通过登录验证的客户端进行添加、删除管理等;
其中,大致的思路是:如果我的客户端都有一个设备编号,那设备注册后,把这个设备的channel还有设备编号存到map里面,然后如果服务端要对某个具体设备下发指令,再根据这个设备编号找到这个channel进行下发。如果该客户端长时间不应答,则剔除掉;
import io.netty.channel.Channel;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class GatewayService {
private static Map<String, Channel> map = new ConcurrentHashMap<String, Channel>();
public static void addGatewayChannel(String deviceId, Channel gateway_channel){
map.put(deviceId, gateway_channel);
}
public static Map<String, Channel> getAllChannels(){
return map;
}
public static Channel getGatewayChannelByDeviceId(String deviceId){
return map.get(deviceId);
}
public static void removeGatewayChannelByDeviceid(String deviceId){
map.remove(dev