修改redis不会关闭问题
parent
5a3ab7efda
commit
263a7b9724
|
|
@ -260,9 +260,10 @@ public class EXGameController extends GameController {
|
||||||
* */
|
* */
|
||||||
public void webGroupJoinRoom(RobotUser robotUser) {
|
public void webGroupJoinRoom(RobotUser robotUser) {
|
||||||
String connecId = robotUser.getConnecId();
|
String connecId = robotUser.getConnecId();
|
||||||
|
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||||
|
Jedis jedis2 = Redis.use("group1_db2").getJedis();
|
||||||
//重启检查
|
//重启检查
|
||||||
try (Jedis jedis0 = Redis.use("group1_db0").getJedis();Jedis jedis2 = Redis.use("group1_db2").getJedis()){
|
try {
|
||||||
Set<String> robotTokens = jedis0.smembers("{user}:"+robotUser.getRobotId()+"_token");
|
Set<String> robotTokens = jedis0.smembers("{user}:"+robotUser.getRobotId()+"_token");
|
||||||
String robotSession = null;
|
String robotSession = null;
|
||||||
|
|
||||||
|
|
@ -287,6 +288,9 @@ public class EXGameController extends GameController {
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
jedis0.close();
|
||||||
|
jedis2.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -294,7 +298,9 @@ public class EXGameController extends GameController {
|
||||||
* 加入房间逻辑
|
* 加入房间逻辑
|
||||||
*/
|
*/
|
||||||
private void joinRoomCommon(int robotId, String roomId, int groupId, ITObject params) {
|
private void joinRoomCommon(int robotId, String roomId, int groupId, ITObject params) {
|
||||||
try (Jedis jedis0 = Redis.use("group1_db0").getJedis();Jedis jedis2 = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||||
|
Jedis jedis2 = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
Set<String> robotTokens = jedis0.smembers("{user}:" + robotId + "_token");
|
Set<String> robotTokens = jedis0.smembers("{user}:" + robotId + "_token");
|
||||||
String robotSession = null;
|
String robotSession = null;
|
||||||
|
|
||||||
|
|
@ -343,6 +349,9 @@ public class EXGameController extends GameController {
|
||||||
System.err.println("已进入房间准备成功: " + robotUser.getConnecId());
|
System.err.println("已进入房间准备成功: " + robotUser.getConnecId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
jedis0.close();
|
||||||
|
jedis2.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,8 @@ public class EXMainServer extends MainServer{
|
||||||
//5、干活
|
//5、干活
|
||||||
log.info("长沙麻将机器人服务器已启动");
|
log.info("长沙麻将机器人服务器已启动");
|
||||||
log.info("服务器将监听端口 {} 用于接收robot_mgr管理协议", gameSetting.port);
|
log.info("服务器将监听端口 {} 用于接收robot_mgr管理协议", gameSetting.port);
|
||||||
|
|
||||||
|
jedis2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -318,7 +318,9 @@ public class RobotConnectionManager {
|
||||||
int robotId = Integer.parseInt(robotUser.getRobotId());
|
int robotId = Integer.parseInt(robotUser.getRobotId());
|
||||||
ITObject param = message.param;
|
ITObject param = message.param;
|
||||||
HuNanChangSha huNanChangSha = getHuNanChangShaInstance(connecId);
|
HuNanChangSha huNanChangSha = getHuNanChangShaInstance(connecId);
|
||||||
try (Jedis jedis0 = Redis.use().getJedis();Jedis jedis2 = Redis.use("group1_db2").getJedis();){
|
Jedis jedis0 = Redis.use().getJedis();
|
||||||
|
Jedis jedis2 = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
//长沙麻将 机器人处理事件
|
//长沙麻将 机器人处理事件
|
||||||
//初始化收手牌
|
//初始化收手牌
|
||||||
if ("811".equalsIgnoreCase(command)) {
|
if ("811".equalsIgnoreCase(command)) {
|
||||||
|
|
@ -675,6 +677,9 @@ public class RobotConnectionManager {
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
} finally {
|
||||||
|
jedis0.close();
|
||||||
|
jedis2.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -682,13 +687,16 @@ public class RobotConnectionManager {
|
||||||
* 增加leftover_robot数量 机器人退出房间
|
* 增加leftover_robot数量 机器人退出房间
|
||||||
*/
|
*/
|
||||||
private void updateLeftoverRobot(int robotId) {
|
private void updateLeftoverRobot(int robotId) {
|
||||||
try (Jedis jedis2 = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis2 = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
|
|
||||||
jedis2.hset("gallrobot", String.valueOf(robotId), "0");
|
jedis2.hset("gallrobot", String.valueOf(robotId), "0");
|
||||||
|
|
||||||
jedis2.hset("{grobot}:" + robotId, "start", "0");
|
jedis2.hset("{grobot}:" + robotId, "start", "0");
|
||||||
|
|
||||||
System.out.println("机器人 {"+robotId+"} 退出房间,修改gallrobot为0");
|
System.out.println("机器人 {"+robotId+"} 退出房间,修改gallrobot为0");
|
||||||
|
} finally {
|
||||||
|
jedis2.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,8 @@ public class HuNanChangSha {
|
||||||
* @param connecId 连接ID
|
* @param connecId 连接ID
|
||||||
*/
|
*/
|
||||||
public void saveToRedis(String connecId) {
|
public void saveToRedis(String connecId) {
|
||||||
try (Jedis jedis = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
Map<String, String> stateMap = new HashMap<>();
|
Map<String, String> stateMap = new HashMap<>();
|
||||||
|
|
||||||
stateMap.put("changShaCardInhand", gson.toJson(changShaCardInhand));
|
stateMap.put("changShaCardInhand", gson.toJson(changShaCardInhand));
|
||||||
|
|
@ -135,6 +136,8 @@ public class HuNanChangSha {
|
||||||
System.out.println("保存HuNanChangSha状态到Redis: " + connecId);
|
System.out.println("保存HuNanChangSha状态到Redis: " + connecId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("保存HuNanChangSha状态到Redis失败: " + e.getMessage());
|
System.err.println("保存HuNanChangSha状态到Redis失败: " + e.getMessage());
|
||||||
|
} finally {
|
||||||
|
jedis.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -144,7 +147,8 @@ public class HuNanChangSha {
|
||||||
* @return 是否成功恢复
|
* @return 是否成功恢复
|
||||||
*/
|
*/
|
||||||
public boolean restoreFromRedis(String connecId) {
|
public boolean restoreFromRedis(String connecId) {
|
||||||
try (Jedis jedis = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
String redisKey = "{csmj}:" + connecId;
|
String redisKey = "{csmj}:" + connecId;
|
||||||
Map<String, String> stateMap = jedis.hgetAll(redisKey);
|
Map<String, String> stateMap = jedis.hgetAll(redisKey);
|
||||||
|
|
||||||
|
|
@ -216,6 +220,8 @@ public class HuNanChangSha {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("从Redis恢复HuNanChangSha状态失败: " + e.getMessage());
|
System.err.println("从Redis恢复HuNanChangSha状态失败: " + e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
|
} finally {
|
||||||
|
jedis.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -224,12 +230,15 @@ public class HuNanChangSha {
|
||||||
* @param connecId 连接ID
|
* @param connecId 连接ID
|
||||||
*/
|
*/
|
||||||
public static void removeFromRedis(String connecId) {
|
public static void removeFromRedis(String connecId) {
|
||||||
try (Jedis jedis = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
String redisKey = "{csmj}:" + connecId;
|
String redisKey = "{csmj}:" + connecId;
|
||||||
jedis.del(redisKey);
|
jedis.del(redisKey);
|
||||||
System.out.println("从Redis删除HuNanChangSha状态: " + connecId);
|
System.out.println("从Redis删除HuNanChangSha状态: " + connecId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("从Redis删除HuNanChangSha状态失败: " + e.getMessage());
|
System.err.println("从Redis删除HuNanChangSha状态失败: " + e.getMessage());
|
||||||
|
} finally {
|
||||||
|
jedis.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1990,12 +1999,15 @@ public class HuNanChangSha {
|
||||||
List<Integer> robotIdsList = new ArrayList<>();
|
List<Integer> robotIdsList = new ArrayList<>();
|
||||||
|
|
||||||
//Redis中获取当前活跃的机器人连接信息
|
//Redis中获取当前活跃的机器人连接信息
|
||||||
try (Jedis jedis = Redis.use("group1_db2").getJedis()) {
|
Jedis jedis = Redis.use("group1_db2").getJedis();
|
||||||
|
try {
|
||||||
//从Redis中获取所有在线的机器人ID
|
//从Redis中获取所有在线的机器人ID
|
||||||
java.util.Set<String> allKeys = jedis.keys("{robot}:*");
|
Set<String> allKeys = jedis.keys("{robot}:*");
|
||||||
for (String key : allKeys) {
|
for (String key : allKeys) {
|
||||||
robotIdsList.add(Integer.valueOf(key.replace("{robot}:","")));
|
robotIdsList.add(Integer.valueOf(key.replace("{robot}:","")));
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
|
jedis.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!robotIdsList.contains(playerid)) {
|
if (!robotIdsList.contains(playerid)) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.taurus.permanent.TPServer;
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("启动长沙麻将机器人服务器...");
|
System.out.println("启动长沙麻将机器人服务器...");
|
||||||
System.out.println("服务器将监听端口7701用于游戏协议");
|
System.out.println("服务器将监听端口8701用于游戏协议");
|
||||||
|
|
||||||
//启动机器人服务
|
//启动机器人服务
|
||||||
TPServer.me().start();
|
TPServer.me().start();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue