Compare commits
10 Commits
852e4e7822
...
69d64fb2ed
| Author | SHA1 | Date |
|---|---|---|
|
|
69d64fb2ed | |
|
|
dbcb834b6f | |
|
|
cb0703d8b3 | |
|
|
2998452068 | |
|
|
9d38ac2c61 | |
|
|
254fd9ba86 | |
|
|
c22cfc479d | |
|
|
920fc261a5 | |
|
|
4fb08ca53f | |
|
|
3a0f24bad6 |
|
|
@ -6,14 +6,33 @@
|
|||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="web_group" />
|
||||
<module name="game_mj_changsha" />
|
||||
<module name="taurus-core" />
|
||||
<module name="taurus-permanent" />
|
||||
<module name="robot_common" />
|
||||
<module name="taurus-web" />
|
||||
<module name="game_common" />
|
||||
<module name="game_mj_zhuanzhuan" />
|
||||
<module name="data_cache" />
|
||||
<module name="game_mj_hongzhong" />
|
||||
<module name="web_group" />
|
||||
<module name="game_mj_yijiaolaiyou" />
|
||||
<module name="taurus-permanent" />
|
||||
<module name="event_mgr" />
|
||||
<module name="game_common" />
|
||||
<module name="taurus-web" />
|
||||
<module name="game_zp_changdepaohuzi" />
|
||||
<module name="game_mj_fulushou" />
|
||||
<module name="game_pk_chuntian" />
|
||||
<module name="game_zp_yueyangwaihuzi" />
|
||||
<module name="game_zp_paohuzi" />
|
||||
<module name="game_mj_changsha" />
|
||||
<module name="pack_tools" />
|
||||
<module name="robot_common" />
|
||||
<module name="game_zp_xiangtanpaohuzi" />
|
||||
<module name="game_pk_paodekuai" />
|
||||
<module name="game_mj_nanxian" />
|
||||
<module name="game_zp_hspaohuzi" />
|
||||
<module name="game_mj_gejiu" />
|
||||
<module name="web_login" />
|
||||
<module name="group_mgr" />
|
||||
<module name="game_pk_dazhadan" />
|
||||
<module name="game_pk_sanqianfen" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/game_web/event_mgr/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/event_mgr/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/group_room_mgr/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/group_room_mgr/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/pack_tools/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/pack_tools/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/web_group/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/web_group/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/web_login20/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/game_web/web_login20/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/libs/data_cache/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/libs/data_cache/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/libs/game_common/src/main/java" charset="UTF-8" />
|
||||
|
|
@ -19,5 +27,35 @@
|
|||
<file url="file://$PROJECT_DIR$/libs/taurus-server/taurus-web/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/changsha/game_mj_cs/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/changsha/game_mj_cs/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/nanxian/game_mj_nx/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/nanxian/game_mj_nx/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/src/main/resources" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/src/main/resources" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinJpsPluginSettings">
|
||||
<option name="version" value="1.6.21" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -4,12 +4,33 @@
|
|||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/libs/taurus-server/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/libs/data_cache/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/libs/game_common/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/web_group/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/libs/robot_common/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/libs/taurus-server/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_paohuzi/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_yueyangwaihuzi/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/group_room_mgr/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/pack_tools/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/changsha/game_mj_cs/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/fulushou/game_mj_fulushou/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/hongzhong/game_mj_hz/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/zhuanzhuan/game_mj_zhuanzhuan/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/web_group/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/web_login20/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/game_web/event_mgr/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/puke/sanqianfen/game_pk_sanqianfen/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/nanxian/game_mj_nx/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/dazhadan/game_pk_dazhadan/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/yijiaolaiyou/game_mj_yijiaolaiyou/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/puke/dazhadan/game_pk_dazhadan/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/puke/paodekuai/game_pk_paodekuai/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_hspaohuzi/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_changdepaohuzi/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/zipai/paohuzi/game_zp_xiangtanpaohuzi/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/majiang/gejiu/game_mj_gejiu/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/puke/chuntian/game_pk_chuntian/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/libs/robot_common/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="0b5e96d5-7630-407a-8e4f-0ff0311ccd8b" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/../../.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/compiler.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/encodings.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/misc.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/kotlinc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/build/pro/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/build/pro/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/MainServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/MainServer.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/controller/GroupController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/controller/GroupController.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/job/UpdatePlayRoomJob.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/job/UpdatePlayRoomJob.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/com/group/service/GroupService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/group/service/GroupService.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/webapp/config/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-01" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-02" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-03" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-04" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-05" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-21" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/webapp/logs/web_main.log.2026-01-24" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT.war" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$1.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer$2.class" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/MainServer.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/controller/GroupController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/controller/GroupController.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/annotations-13.0.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/gson-2.10.1.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/jboss-logging-3.3.2.Final.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-1.5.10.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-common-1.5.10.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-jdk7-1.5.10.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/kotlin-stdlib-jdk8-1.5.10.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/robot_common-1.0.8.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/undertow-core-2.0.16.Final.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/xnio-api-3.3.8.Final.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/WEB-INF/lib/xnio-nio-3.3.8.Final.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/ROOT/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/ROOT/config/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/MainServer$1.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer$2.class" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/MainServer.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/controller/GroupController.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/controller/GroupController.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/job/UpdatePlayRoomJob.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/job/UpdatePlayRoomJob.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/group/service/GroupService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/group/service/GroupService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/compile/createdFiles.lst" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/compile/inputFiles.lst" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/testCompile/createdFiles.lst" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/testCompile/inputFiles.lst" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/test-classes/web_group/Main.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/web_group/Main.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/src/main/java/com/mjlogin/service/AccountService.java" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/src/main/java/com/mjlogin/service/AccountService.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT.war" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_login20/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.classpath" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/compiler.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/encodings.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/jarRepositories.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/kotlinc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/misc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.idea/vcs.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.project" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.core.resources.prefs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.jdt.apt.core.prefs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.jdt.core.prefs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/.settings/org.eclipse.m2e.core.prefs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/config/log4j.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/config/taurus-core.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/pom.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/DoTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HandAnalysis.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanFangPaoFa.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanHongZhong.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanPaoDeKuai.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanZhuanZhuan.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/JiQiRens.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/HttpClient.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/ISocketLayer.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/Message.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/MessageResponse.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/NetManager.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/SocketCode.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/TaurusClient.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/ThreadManager.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/AccountBusiness.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/GroupRoomBusiness.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/business/RoomBusiness.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/IOHandler.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/ISocket.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/LagMonitor.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/Packet.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketEngine.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketState.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SocketTcp.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/SystemController.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/client/io/TSocketException.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/AddRedisRobot.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/AddRoomRobot.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/jiqiren.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/newRobot/lianjiejiqiren.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardConfig.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardGroup.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardObj.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/CardUtil.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaMahjongAI.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Config.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/GroupDatas.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/HongZhongSuanFaTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/NewChangshaSuanFaTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/PaoDeKuaiSuanFaTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/PlayerState.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuChi.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuGang.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TinHuPeng.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TingPaiChecker.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/TryPutCard.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/WinCard.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/WinCardType.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ZhuanZhuanSuanFaTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ai.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test1.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/test99.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/zuixin.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/Test.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/Test2.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/test6.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/test/java/test7.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/TEST-com.taurus.TestExtension.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/TEST-com.taurus.TestExtension.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/com.taurus.TestExtension.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/surefire-reports/com.taurus.TestExtension.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/taurus-permanent-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-permanent/target/taurus-permanent-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-server.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-server.iml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/src/main/java/com/taurus/web/WebFilter.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/src/main/java/com/taurus/web/WebFilter.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/classes/com/taurus/web/WebFilter.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/classes/com/taurus/web/WebFilter.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/2026-01-01T08-00-11_978.dumpstream" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
|
||||
</component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"associatedIndex": 5
|
||||
}]]></component>
|
||||
<component name="ProjectId" id="3976D3jFfFaRPSUxbaPEaUpbzE9" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Application.Main.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "D:/fengyeserver/xtserver_anchou/game_web/web_group",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="web_group.Main" />
|
||||
<module name="web_group" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="web_group.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</pattern>
|
||||
</extension>
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Application.Main" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SharedIndexes">
|
||||
<attachedChunks>
|
||||
<set>
|
||||
<option value="bundled-jdk-9f38398b9061-18abd8497189-intellij.indexing.shared.core-IU-241.14494.240" />
|
||||
<option value="bundled-js-predefined-1d06a55b98c1-74d2a5396914-JavaScript-IU-241.14494.240" />
|
||||
</set>
|
||||
</attachedChunks>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="0b5e96d5-7630-407a-8e4f-0ff0311ccd8b" name="Changes" comment="" />
|
||||
<created>1770034638903</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1770034638903</updated>
|
||||
<workItem from="1770034639979" duration="755000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
<!-- 最大连接数, 默认10个 -->
|
||||
<maxPool>100</maxPool>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>10</minIdle>
|
||||
<minIdle>5</minIdle>
|
||||
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
|
||||
<maxLifetime>180000</maxLifetime>
|
||||
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
|
||||
|
|
@ -43,9 +43,9 @@
|
|||
<db>
|
||||
<name>db1</name>
|
||||
<driverName>com.mysql.cj.jdbc.Driver</driverName>
|
||||
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
|
||||
<userName>root</userName>
|
||||
<password>6KYnXJjGhxNceF8e</password>
|
||||
<jdbcUrl>jdbc:mysql://192.168.0.11:6060/wb_game</jdbcUrl>
|
||||
<userName>proto_ff</userName>
|
||||
<password>37du_game</password>
|
||||
</db>
|
||||
</databases>
|
||||
</plugin>
|
||||
|
|
@ -58,9 +58,9 @@
|
|||
<!-- 最大连接数, 默认8个 -->
|
||||
<maxTotal>80</maxTotal>
|
||||
<!-- 最大空闲连接数, 默认8个 -->
|
||||
<maxIdle>20</maxIdle>
|
||||
<maxIdle>8</maxIdle>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>5</minIdle>
|
||||
<minIdle>2</minIdle>
|
||||
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
|
||||
<maxWaitMillis>-1</maxWaitMillis>
|
||||
<!-- 在borrow一个jedis实例时,是否提前进行alidate操作, 默认false -->
|
||||
|
|
@ -86,15 +86,14 @@
|
|||
</poolConfig>
|
||||
|
||||
<infos>
|
||||
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
|
||||
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
|
||||
<info name="group1_db0" host="127.0.0.1" password="123456" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="127.0.0.1" password="123456" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="127.0.0.1" password="123456" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="127.0.0.1" password="123456" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="127.0.0.1" password="123456" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="127.0.0.1" password="123456" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="127.0.0.1" password="123456" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="127.0.0.1" password="123456" port="6379" database="11" timeout="5000"/>
|
||||
</infos>
|
||||
</plugin>
|
||||
</serivce-core>
|
||||
|
|
@ -77,11 +77,6 @@
|
|||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.robot</groupId>
|
||||
<artifactId>robot_common</artifactId>
|
||||
<version>1.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-webapp -->
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -17,15 +17,14 @@ import com.taurus.core.routes.Extension;
|
|||
import com.taurus.core.routes.Routes;
|
||||
import com.taurus.core.util.FileUtil;
|
||||
|
||||
import com.taurus.permanent.TPServer;
|
||||
import hunan.DoTest;
|
||||
|
||||
import org.quartz.CronTrigger;
|
||||
import org.quartz.JobDetail;
|
||||
import org.quartz.Scheduler;
|
||||
import org.quartz.SchedulerFactory;
|
||||
import org.quartz.impl.StdSchedulerFactory;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import taurus.client.NetManager;
|
||||
|
||||
|
||||
import static org.quartz.CronScheduleBuilder.cronSchedule;
|
||||
import static org.quartz.JobBuilder.newJob;
|
||||
|
|
@ -117,44 +116,7 @@ public class MainServer extends Extension {
|
|||
@Override
|
||||
public void onStart() {
|
||||
// 1. 先启动独立的事件处理线程(只启动一次)
|
||||
startNetEventThread();
|
||||
|
||||
// 2. 定时器只负责创建机器人连接
|
||||
TPServer.me().getTimerPool().scheduleAtFixedRate(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
// System.out.println("开始创建机器人连接...");
|
||||
// QingChu qingChu = new QingChu();
|
||||
// qingChu.qingchu();
|
||||
|
||||
DoTest doTe = new DoTest();
|
||||
doTe.doTest();
|
||||
|
||||
// System.out.println("机器人返回结果: " + s);
|
||||
} catch (Exception e) {
|
||||
// System.out.println("创建机器人连接失败" + e);
|
||||
}
|
||||
}
|
||||
}, 0, 25 ,TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
// 独立的事件处理线程
|
||||
private void startNetEventThread() {
|
||||
Thread eventThread = new Thread(() -> {
|
||||
while (true) {
|
||||
NetManager.processEvents();
|
||||
try {
|
||||
Thread.sleep(2);
|
||||
} catch (InterruptedException e) {
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
}, "NetEvent-Thread");
|
||||
|
||||
eventThread.setDaemon(true); // 设置为守护线程
|
||||
eventThread.start();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ public class GroupController extends Controller {
|
|||
@ActionKey(value = Protocol.GET_GROUPS, validate = WebInterceptor.V_SESSION)
|
||||
public final void getGroups() throws Exception {
|
||||
String session = this.getSession();
|
||||
|
||||
AccountBean acc = AccountCache.getAccount(session);
|
||||
logger.info("jefe_test: "+acc.id);
|
||||
ITArray list = GroupService.getGroups(acc.id);
|
||||
|
|
|
|||
|
|
@ -219,6 +219,22 @@ public class UpdatePlayRoomJob implements Job{
|
|||
for (String room : rooms) {
|
||||
List<String> room_list = Redis.use("group1_db0").hmget(room, "fake", "status", "round", "id", "times", "players", "create_time", "fake_existTime");
|
||||
|
||||
|
||||
|
||||
String roomId = room_list.get(3);
|
||||
ITArray players = TArray.newFromJsonData(room_list.get(5));
|
||||
|
||||
if(players.size()==0) {
|
||||
//清理空桌
|
||||
GroupPublisherService.delRoomEvt(groupId, roomId);
|
||||
jedis.zrem(grooms_key, room);
|
||||
Redis.use().hset(room, "status", 3 + "");
|
||||
Redis.use().hincrBy(room, "cache_ver", 1);
|
||||
Redis.use().expire(room, 20);
|
||||
logger.error("del 空 room:" + roomId + " player:"+room_list.get(5) + " fake_json:");
|
||||
continue;
|
||||
}
|
||||
|
||||
String fake_json = room_list.get(0);
|
||||
if (fake_json == null)
|
||||
{
|
||||
|
|
@ -236,7 +252,7 @@ public class UpdatePlayRoomJob implements Job{
|
|||
}
|
||||
int round = Integer.parseInt(strRound);
|
||||
|
||||
String roomId = room_list.get(3);
|
||||
|
||||
if(StringUtil.isEmpty(roomId)) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -270,7 +286,7 @@ public class UpdatePlayRoomJob implements Job{
|
|||
}
|
||||
|
||||
boolean exitGame = false;
|
||||
ITArray players = TArray.newFromJsonData(room_list.get(5));
|
||||
|
||||
if (round >= 1)
|
||||
{
|
||||
int fake_hp = (int)(Math.random() * 100000);
|
||||
|
|
|
|||
|
|
@ -210,37 +210,6 @@ public class GroupService {
|
|||
}
|
||||
|
||||
private static final Map<String, String> payToRedis(int groupId, int pid, int gameId, String name, int deskId, String config,
|
||||
String hpData, int hpOnOff, int hp_times, int reward, int rewardType,int rewardValueType, int xipai_reward, int xipai_rewardType,int xipai_rewardValueType,int anchou_reward, int anchou_rewardType,int anchou_rewardValueType, int robot_room,int shangxian_robot) {
|
||||
Map<String, String> redis_map = new HashMap<>();
|
||||
redis_map.put("groupId", groupId + "");
|
||||
redis_map.put("id", pid + "");
|
||||
redis_map.put("name", name);
|
||||
redis_map.put("deskId", deskId + "");
|
||||
redis_map.put("gameId", gameId + "");
|
||||
redis_map.put("config", config);
|
||||
redis_map.put("hpData", hpData);
|
||||
redis_map.put("hpOnOff", hpOnOff + "");
|
||||
redis_map.put("reward", reward + "");
|
||||
redis_map.put("rewardType", rewardType + "");
|
||||
redis_map.put("rewardValueType", rewardValueType + "");
|
||||
redis_map.put("xipai_reward", xipai_reward + "");
|
||||
redis_map.put("xipai_rewardType", xipai_rewardType + "");
|
||||
redis_map.put("xipai_rewardValueType", xipai_rewardValueType + "");
|
||||
|
||||
redis_map.put("anchou_reward", anchou_reward + "");
|
||||
redis_map.put("anchou_rewardType", anchou_rewardType + "");
|
||||
redis_map.put("anchou_rewardValueType", anchou_rewardValueType + "");
|
||||
|
||||
redis_map.put("hp_times", hp_times + "");
|
||||
redis_map.put("ban", "0");
|
||||
redis_map.put("robot_room", robot_room + "");
|
||||
redis_map.put("shangxian_robot", shangxian_robot + "");
|
||||
|
||||
return redis_map;
|
||||
}
|
||||
|
||||
|
||||
private static final Map<String, String> payToRedis1(int groupId, int pid, int gameId, String name, int deskId, String config,
|
||||
String hpData, int hpOnOff, int hp_times, int reward, int rewardType,int rewardValueType, int xipai_reward, int xipai_rewardType,int xipai_rewardValueType,int anchou_reward, int anchou_rewardType,int anchou_rewardValueType, int robot_room) {
|
||||
Map<String, String> redis_map = new HashMap<>();
|
||||
redis_map.put("groupId", groupId + "");
|
||||
|
|
@ -265,7 +234,6 @@ public class GroupService {
|
|||
redis_map.put("hp_times", hp_times + "");
|
||||
redis_map.put("ban", "0");
|
||||
redis_map.put("robot_room", robot_room + "");
|
||||
|
||||
return redis_map;
|
||||
}
|
||||
|
||||
|
|
@ -4510,7 +4478,7 @@ public class GroupService {
|
|||
String config_json = config.toJson();
|
||||
String hpData_json = hpData.toJson();
|
||||
String p_key = GroupCache.genPlayKey(groupId, pid);
|
||||
Map<String, String> redis_map = payToRedis1(groupId, pid, gameId, name, deskId, config_json, hpData_json, hpOnOff,
|
||||
Map<String, String> redis_map = payToRedis(groupId, pid, gameId, name, deskId, config_json, hpData_json, hpOnOff,
|
||||
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room);
|
||||
redis_map.put("opt", "1");
|
||||
jedis11.hmset(p_key, redis_map);
|
||||
|
|
@ -4794,14 +4762,6 @@ public class GroupService {
|
|||
{
|
||||
robot_room = hpData.getInt("robot_room");
|
||||
}
|
||||
|
||||
int shangxian_robot = 0;
|
||||
if (hpData.containsKey("shangxian_robot"))
|
||||
{
|
||||
shangxian_robot = hpData.getInt("shangxian_robot");
|
||||
}
|
||||
|
||||
|
||||
hpData.remove("rewards_type");
|
||||
hpData.remove("rewards_val");
|
||||
hpData.remove("xipai_rewards_val");
|
||||
|
|
@ -4822,7 +4782,7 @@ public class GroupService {
|
|||
String hpData_json = hpData.toJson();
|
||||
|
||||
Map<String, String> redis_map = payToRedis(groupId, pid, gameId, name,deskId, config_json, hpData_json, hpOnOff,
|
||||
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room,shangxian_robot);
|
||||
hp_times, reward, rewardType,rewardValueType, xipai_reward, xipai_rewardType, xipai_rewardValueType,anchou_reward, anchou_rewardType, anchou_rewardValueType, robot_room);
|
||||
jedis11.hmset(p_key, redis_map);
|
||||
jedis11.hincrBy(p_key, "cache_ver", 1);
|
||||
String gp_key = GroupCache.genPidsKey(groupId);
|
||||
|
|
@ -5664,11 +5624,11 @@ public class GroupService {
|
|||
GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
|
||||
if (gpb == null)
|
||||
continue;
|
||||
if (gpb.gameId == 10 || gpb.gameId==22 || gpb.gameId ==66) { //跑得快可以先加
|
||||
if (gpb.gameId == 10 || gpb.gameId==22) {
|
||||
ITObject obj = TObject.newInstance();
|
||||
obj.putInt("pid", pid);
|
||||
obj.putString("playname", gpb.name);
|
||||
String bans = jedis10.hget("g{"+groupId+"}:play:"+pid, "shangxian_robot");
|
||||
String bans = jedis10.hget("g{"+groupId+"}:play:"+pid, "leftover_robot");
|
||||
int ban = 0;
|
||||
if (bans != null) {
|
||||
ban = Integer.parseInt(bans);
|
||||
|
|
@ -5737,7 +5697,7 @@ public class GroupService {
|
|||
RedisLock lock = new RedisLock(gm_key, jedis10);
|
||||
try {
|
||||
|
||||
jedis10.hset("g{"+groupId+"}:play:"+pid, "shangxian_robot", ban+"");
|
||||
jedis10.hset("g{"+groupId+"}:play:"+pid, "leftover_robot", ban+"");
|
||||
|
||||
} finally {
|
||||
lock.unlock();
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<db>
|
||||
<name>db1</name>
|
||||
<driverName>com.mysql.cj.jdbc.Driver</driverName>
|
||||
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
|
||||
<jdbcUrl>jdbc:mysql://47.109.55.7:8060/wb_game</jdbcUrl>
|
||||
<userName>root</userName>
|
||||
<password>6KYnXJjGhxNceF8e</password>
|
||||
</db>
|
||||
|
|
@ -86,15 +86,16 @@
|
|||
</poolConfig>
|
||||
|
||||
<infos>
|
||||
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
|
||||
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
|
||||
<info name="group1_db0" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="KuaiLjzhu@2026" port="6379" database="11" timeout="5000"/>
|
||||
<info name="tmp_group1_db9" host="r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com" password="654sads" port="6479" database="9" timeout="5000"/>
|
||||
|
||||
</infos>
|
||||
</plugin>
|
||||
</serivce-core>
|
||||
|
|
@ -1,884 +1,21 @@
|
|||
05 一月 2026 | 00:00:09,822 | ERROR | Thread-290 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:00:09,824 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:00:15,102 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:00:15,354 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:00:39,833 | ERROR | Thread-295 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:00:39,847 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:00:40,193 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:00:40,491 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:00:59,837 | ERROR | Thread-299 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:00:59,839 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:01:05,115 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:01:05,375 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:01:23,832 | INFO | qtp1605283233-357 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:522ms
|
||||
05 一月 2026 | 00:01:25,156 | INFO | qtp1605283233-357 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:483ms
|
||||
05 一月 2026 | 00:01:28,231 | INFO | qtp1605283233-364 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:506ms
|
||||
05 一月 2026 | 00:01:29,855 | ERROR | Thread-304 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:01:29,857 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:01:30,728 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:01:31,280 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:01:49,850 | ERROR | Thread-309 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:01:49,851 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:01:55,160 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:01:55,646 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:02:19,864 | ERROR | Thread-313 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:02:19,866 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:02:20,150 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:02:20,481 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:02:39,866 | ERROR | Thread-317 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:02:39,867 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:02:45,482 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:02:45,788 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:03:09,876 | ERROR | Thread-321 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:03:09,878 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:03:10,253 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:03:10,597 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:03:29,878 | ERROR | Thread-326 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:03:29,881 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:03:35,097 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:03:35,399 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:03:59,886 | ERROR | Thread-330 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:03:59,888 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:04:00,115 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:04:00,408 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:04:19,895 | ERROR | Thread-335 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:04:19,896 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:04:25,194 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:04:25,483 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:04:49,899 | ERROR | Thread-340 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:04:49,901 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:04:50,313 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:04:50,980 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:05:09,905 | ERROR | Thread-344 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:05:09,907 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:05:15,176 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:05:15,502 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:05:39,914 | ERROR | Thread-348 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:05:39,915 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:05:40,271 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:05:40,553 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:05:59,925 | ERROR | Thread-352 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:05:59,927 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:06:05,155 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:06:05,458 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:06:29,928 | ERROR | Thread-358 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:06:29,929 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:06:30,226 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:06:30,478 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:06:49,933 | ERROR | Thread-362 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:06:49,935 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:06:55,198 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:06:55,567 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:07:19,696 | ERROR | Thread-366 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:07:19,699 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:07:20,392 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:07:20,794 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:07:39,701 | ERROR | Thread-371 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:07:39,702 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:07:45,220 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:07:45,530 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:08:01,103 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:591ms
|
||||
05 一月 2026 | 00:08:03,571 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:430ms
|
||||
05 一月 2026 | 00:08:04,912 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:446ms
|
||||
05 一月 2026 | 00:08:05,877 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:239ms
|
||||
05 一月 2026 | 00:08:09,711 | ERROR | Thread-375 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:08:09,714 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:08:10,170 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:08:10,454 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:08:29,711 | ERROR | Thread-380 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:08:29,714 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:08:35,108 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:08:35,373 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:08:36,985 | INFO | qtp1605283233-439 | group.controller.GroupController | | jefe_test: 177475
|
||||
05 一月 2026 | 00:08:37,194 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:320ms
|
||||
05 一月 2026 | 00:08:38,716 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:415ms
|
||||
05 一月 2026 | 00:08:41,481 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_partner_stat[{user}:177475] time:628ms
|
||||
05 一月 2026 | 00:08:42,474 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:327ms
|
||||
05 一月 2026 | 00:08:44,902 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_hplog_mgr[{user}:177475] time:298ms
|
||||
05 一月 2026 | 00:08:46,047 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:316ms
|
||||
05 一月 2026 | 00:08:48,052 | INFO | qtp1605283233-439 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:470ms
|
||||
05 一月 2026 | 00:08:59,718 | ERROR | Thread-384 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:08:59,721 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:09:00,118 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:09:00,462 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:09:19,727 | ERROR | Thread-388 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:09:19,731 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:09:25,208 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:09:25,518 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:09:49,732 | ERROR | Thread-393 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:09:49,734 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:09:50,176 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:09:50,469 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:09:54,731 | INFO | qtp1605283233-414 | group.controller.GroupController | | jefe_test: 177475
|
||||
05 一月 2026 | 00:09:54,926 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:297ms
|
||||
05 一月 2026 | 00:09:55,959 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:307ms
|
||||
05 一月 2026 | 00:09:58,204 | INFO | qtp1605283233-414 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1314ms
|
||||
05 一月 2026 | 00:09:58,659 | INFO | qtp1605283233-461 | taurus.web.WebFilter | | action: join_room[{user}:177475] time:1247ms
|
||||
05 一月 2026 | 00:10:00,818 | INFO | qtp1605283233-462 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
|
||||
05 一月 2026 | 00:10:02,054 | INFO | qtp1605283233-462 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:1425ms
|
||||
05 一月 2026 | 00:10:03,340 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[208, 207], weight=1, id=1, type=1, card=209}]
|
||||
05 一月 2026 | 00:10:09,737 | ERROR | Thread-397 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:10:09,739 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:10:15,109 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:10:15,479 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:10:15,729 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:10:15,899 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:10:16,006 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
|
||||
05 一月 2026 | 00:10:16,391 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:556585
|
||||
05 一月 2026 | 00:10:16,403 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [177475]]
|
||||
05 一月 2026 | 00:10:16,448 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [177475]]
|
||||
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:10:16,477 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:10:16,560 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:10:16,595 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:2205000
|
||||
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:10:16,603 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:10:16,635 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
|
||||
05 一月 2026 | 00:10:16,691 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@6e5dff37
|
||||
05 一月 2026 | 00:10:16,747 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
|
||||
05 一月 2026 | 00:10:16,774 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:10:16,798 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102], weight=2, id=1, type=2, card=102}, {opcard=[102], weight=3, id=2, type=3, card=102}, {opcard=[102], weight=4, id=3, type=3, card=102}]
|
||||
05 一月 2026 | 00:10:30,157 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[201], weight=4, id=1, type=3, card=201}]
|
||||
05 一月 2026 | 00:10:40,513 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:10:42,103 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
|
||||
05 一月 2026 | 00:10:43,705 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:574543
|
||||
05 一月 2026 | 00:10:43,716 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:10:43,755 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:10:43,781 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:10:43,859 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:10:43,883 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:1612000
|
||||
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:10:43,893 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:10:43,928 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
|
||||
05 一月 2026 | 00:10:43,995 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@5b89ad98
|
||||
05 一月 2026 | 00:10:44,049 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
|
||||
05 一月 2026 | 00:10:44,073 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:10:44,157 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[208, 207], weight=1, id=1, type=1, card=209}]
|
||||
05 一月 2026 | 00:10:44,216 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
|
||||
05 一月 2026 | 00:10:44,547 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:10:44,773 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:10:44,850 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:10:45,080 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:10:45,086 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:10:45,131 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:10:45,158 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:10:45,225 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:10:45,260 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:10:45,267 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:10:46,092 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108], weight=5, id=1, type=6, card=108}]
|
||||
05 一月 2026 | 00:10:50,278 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:11:04,896 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 103], weight=1, id=1, type=1, card=105}]
|
||||
05 一月 2026 | 00:11:05,159 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:11:06,005 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:11:06,253 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:11:06,295 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:11:06,335 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:11:06,574 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:11:06,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:06,625 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:11:06,654 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:11:06,719 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:11:06,756 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:11:07,168 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:11:09,323 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 208], weight=1, id=1, type=1, card=206}]
|
||||
05 一月 2026 | 00:11:09,350 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207], weight=5, id=1, type=6, card=207}]
|
||||
05 一月 2026 | 00:11:09,754 | ERROR | Thread-407 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:11:10,371 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:11:10,373 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
|
||||
05 一月 2026 | 00:11:18,013 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:11:19,351 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[106, 105], weight=1, id=1, type=1, card=107}, {opcard=[108, 106], weight=1, id=2, type=1, card=107}]
|
||||
05 一月 2026 | 00:11:21,014 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
|
||||
05 一月 2026 | 00:11:21,111 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[105], weight=5, id=1, type=6, card=105}]
|
||||
05 一月 2026 | 00:11:29,760 | ERROR | Thread-411 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:11:29,761 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:11:30,137 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:11:30,968 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:11:31,212 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:11:31,321 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:11:31,552 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:11:31,561 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:31,602 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:11:31,629 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:11:31,717 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:11:31,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:11:31,750 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:11:44,584 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:11:49,117 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[203, 201], weight=1, id=1, type=1, card=202}]
|
||||
05 一月 2026 | 00:11:49,683 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[205, 204], weight=1, id=1, type=1, card=206}]
|
||||
05 一月 2026 | 00:11:49,766 | ERROR | Thread-415 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:11:49,769 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:11:55,106 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:11:55,789 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[204, 205], weight=1, id=1, type=1, card=203}]
|
||||
05 一月 2026 | 00:11:56,258 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:11:56,340 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:11:56,607 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:11:56,613 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:56,668 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:11:56,710 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:11:56,838 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:11:56,867 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:11:56,875 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:11:58,913 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:12:09,485 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[109, 107], weight=1, id=1, type=1, card=108}, {opcard=[204, 203], weight=1, id=2, type=1, card=205}, {opcard=[206, 204], weight=1, id=3, type=1, card=205}, {opcard=[206, 207], weight=1, id=4, type=1, card=205}, {opcard=[108, 107], weight=1, id=5, type=1, card=109}, {opcard=[205], weight=2, id=6, type=2, card=205}]
|
||||
05 一月 2026 | 00:12:12,482 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[209], weight=2, id=1, type=2, card=209}, {opcard=[209], weight=5, id=2, type=6, card=209}]
|
||||
05 一月 2026 | 00:12:19,781 | ERROR | Thread-419 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:12:20,205 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:12:20,472 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:12:21,174 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:12:21,254 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:12:21,491 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:12:21,498 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:12:21,542 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:12:21,564 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:12:21,703 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:12:21,728 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:12:21,737 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:12:23,606 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
|
||||
05 一月 2026 | 00:12:23,607 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:12:24,940 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 205], weight=1, id=1, type=1, card=206}]
|
||||
05 一月 2026 | 00:12:26,245 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[205, 206], weight=1, id=1, type=1, card=204}]
|
||||
05 一月 2026 | 00:12:27,261 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 103], weight=1, id=1, type=1, card=105}]
|
||||
05 一月 2026 | 00:12:33,648 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[101], weight=3, id=1, type=4, card=101}]
|
||||
05 一月 2026 | 00:12:39,461 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[104, 105], weight=1, id=1, type=1, card=103}]
|
||||
05 一月 2026 | 00:12:39,779 | ERROR | Thread-423 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:12:39,781 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:12:45,137 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:12:46,256 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:12:46,382 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:12:46,504 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:12:46,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:12:46,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:12:46,707 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:12:46,730 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:12:46,818 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:12:46,839 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:12:46,847 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:13:09,797 | ERROR | Thread-427 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:13:10,188 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:13:10,685 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
|
||||
05 一月 2026 | 00:13:10,686 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:13:10,952 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:13:11,182 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:13:11,311 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:13:11,566 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:13:11,575 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:11,617 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:13:11,649 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:13:11,761 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:13:11,795 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:13:11,805 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:13:19,330 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[108, 107], weight=1, id=1, type=1, card=109}]
|
||||
05 一月 2026 | 00:13:22,870 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
|
||||
05 一月 2026 | 00:13:26,796 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[102, 103], weight=1, id=1, type=1, card=101}]
|
||||
05 一月 2026 | 00:13:29,793 | ERROR | Thread-432 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:13:29,795 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:13:30,361 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[103, 101], weight=1, id=1, type=1, card=102}]
|
||||
05 一月 2026 | 00:13:30,382 | INFO | NetEvent-Thread | taurus.util.ChangShaSuanFaTest | | Ai出牌长麻===============================
|
||||
05 一月 2026 | 00:13:31,849 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:480ms
|
||||
05 一月 2026 | 00:13:33,441 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_partner_stat[{user}:115777] time:441ms
|
||||
05 一月 2026 | 00:13:34,764 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:663ms
|
||||
05 一月 2026 | 00:13:35,125 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:13:35,549 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:13:35,655 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:13:35,743 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
|
||||
05 一月 2026 | 00:13:35,976 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:574543
|
||||
05 一月 2026 | 00:13:35,985 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:36,040 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:36,066 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:13:36,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:13:36,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:13:36,151 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:13:36,176 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:2173000
|
||||
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:13:36,184 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:13:36,214 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
|
||||
05 一月 2026 | 00:13:36,299 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@6e5dff37
|
||||
05 一月 2026 | 00:13:36,354 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
|
||||
05 一月 2026 | 00:13:36,380 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:13:37,128 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_person_records[{user}:115777] time:241ms
|
||||
05 一月 2026 | 00:13:38,263 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: get_partner_stat[{user}:177475] time:498ms
|
||||
05 一月 2026 | 00:13:39,672 | INFO | qtp1605283233-501 | taurus.web.WebFilter | | action: get_person_records[{user}:177475] time:410ms
|
||||
05 一月 2026 | 00:13:39,795 | ERROR | Thread-273 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:13:39,798 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:13:41,114 | INFO | qtp1605283233-502 | group.controller.GroupController | | jefe_test: 115777
|
||||
05 一月 2026 | 00:13:41,306 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:309ms
|
||||
05 一月 2026 | 00:13:42,203 | INFO | qtp1605283233-502 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:342ms
|
||||
05 一月 2026 | 00:13:42,677 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:13:42,757 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101777
|
||||
05 一月 2026 | 00:13:43,011 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:786674
|
||||
05 一月 2026 | 00:13:43,022 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:43,067 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:13:43,114 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:true
|
||||
05 一月 2026 | 00:13:43,124 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:13:45,623 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1256ms
|
||||
05 一月 2026 | 00:13:49,799 | ERROR | Thread-403 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:13:49,801 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:14:11,647 | INFO | qtp1605283233-493 | group.controller.GroupController | | jefe_test: 112233
|
||||
05 一月 2026 | 00:14:11,907 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:375ms
|
||||
05 一月 2026 | 00:14:12,465 | INFO | qtp1605283233-493 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:347ms
|
||||
05 一月 2026 | 00:15:37,523 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
|
||||
05 一月 2026 | 00:15:37,572 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
|
||||
05 一月 2026 | 00:16:30,646 | INFO | qtp1605283233-68 | group.controller.GroupController | | jefe_test: 115777
|
||||
05 一月 2026 | 00:16:30,911 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:422ms
|
||||
05 一月 2026 | 00:16:32,283 | INFO | qtp1605283233-62 | group.controller.GroupController | | jefe_test: 115777
|
||||
05 一月 2026 | 00:16:32,500 | INFO | qtp1605283233-62 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:349ms
|
||||
05 一月 2026 | 00:16:33,766 | INFO | qtp1605283233-65 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:383ms
|
||||
05 一月 2026 | 00:16:51,688 | INFO | qtp1605283233-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
|
||||
05 一月 2026 | 00:16:53,297 | INFO | qtp1605283233-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1819ms
|
||||
05 一月 2026 | 00:16:53,462 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:16:53,791 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:16:54,054 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:16:54,202 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:16:54,515 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:16:54,524 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:16:54,567 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:16:54,599 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:16:54,599 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:16:54,600 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:16:54,693 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:16:54,728 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:16:54,742 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:17:09,856 | ERROR | Thread-32 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:17:09,860 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:17:18,468 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:17:18,774 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:17:19,015 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:17:19,129 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:17:19,388 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:17:19,399 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:17:19,461 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:17:19,488 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:17:19,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:17:19,610 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:17:19,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:17:39,862 | ERROR | Thread-36 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:17:39,866 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:17:43,443 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:17:43,743 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:17:43,942 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:17:44,065 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:17:44,309 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:17:44,321 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
|
||||
05 一月 2026 | 00:17:44,372 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
|
||||
05 一月 2026 | 00:17:44,423 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:17:44,424 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:17:44,424 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:17:44,518 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:17:44,544 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:17:44,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:17:53,526 | INFO | qtp1605283233-67 | group.controller.GroupController | | jefe_test: 115777
|
||||
05 一月 2026 | 00:17:53,816 | INFO | qtp1605283233-67 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:413ms
|
||||
05 一月 2026 | 00:17:55,118 | INFO | qtp1605283233-66 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:359ms
|
||||
05 一月 2026 | 00:17:58,306 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1954ms
|
||||
05 一月 2026 | 00:17:59,867 | ERROR | Thread-40 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:17:59,869 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:18:08,502 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:18:08,796 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:18:09,124 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:18:09,248 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:18:09,525 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:18:09,537 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:18:09,602 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:18:09,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:18:09,627 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:18:09,628 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:18:09,723 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:18:09,760 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:18:09,767 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:18:29,876 | ERROR | Thread-45 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:18:29,879 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:18:33,415 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:18:33,691 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:18:33,973 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:18:34,075 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:18:34,373 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:18:34,381 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:18:34,425 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:18:34,459 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:18:34,542 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:18:34,573 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:18:34,581 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:18:46,965 | INFO | qtp1605283233-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1319ms
|
||||
05 一月 2026 | 00:18:49,881 | ERROR | Thread-49 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:18:49,884 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:18:59,585 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
|
||||
05 一月 2026 | 00:18:59,638 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
|
||||
05 一月 2026 | 00:19:00,559 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:19:01,002 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:19:01,353 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:19:01,555 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:19:01,861 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:19:01,870 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:01,922 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:01,948 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:19:01,948 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:19:01,949 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:19:02,039 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:19:02,068 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:19:02,081 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:19:19,892 | ERROR | Thread-32 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:19:19,897 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:19:25,405 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:19:25,767 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:19:26,006 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:19:26,132 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:19:26,453 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:19:26,462 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:26,503 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:26,531 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:19:26,531 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:19:26,532 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:19:26,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:19:26,643 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:19:26,656 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:19:26,657 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:19:49,898 | ERROR | Thread-36 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:19:49,901 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:19:50,516 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:19:50,867 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:19:51,130 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:19:51,321 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:19:51,568 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:19:51,578 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:51,619 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:19:51,650 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:19:51,738 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:19:51,773 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:19:51,783 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:19:51,783 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:19:51,784 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:19:51,784 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:20:09,908 | ERROR | Thread-40 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:20:09,909 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:20:15,423 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:20:15,770 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:20:16,007 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:20:16,094 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:20:16,381 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:20:16,388 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:20:16,436 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:20:16,465 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:20:16,549 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:20:16,578 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:20:16,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:20:16,586 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:20:16,587 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:20:16,587 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:20:33,699 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
|
||||
05 一月 2026 | 00:20:33,745 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
|
||||
05 一月 2026 | 00:20:34,587 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:20:34,907 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:20:35,165 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:20:35,339 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:20:35,668 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:20:35,683 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:20:35,744 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:20:35,770 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:20:35,857 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:20:35,896 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:20:35,909 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:20:44,544 | INFO | qtp1605283233-63 | group.controller.GroupController | | jefe_test: 115777
|
||||
05 一月 2026 | 00:20:44,815 | INFO | qtp1605283233-63 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:392ms
|
||||
05 一月 2026 | 00:20:45,483 | INFO | qtp1605283233-63 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:357ms
|
||||
05 一月 2026 | 00:20:59,408 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:20:59,656 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:20:59,844 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:20:59,920 | ERROR | Thread-31 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:20:59,922 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:20:59,974 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:102254
|
||||
05 一月 2026 | 00:21:00,245 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:21:00,253 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
|
||||
05 一月 2026 | 00:21:00,300 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, []]
|
||||
05 一月 2026 | 00:21:00,322 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:21:00,322 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:21:00,323 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:21:00,425 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:21:00,449 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:0
|
||||
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:21:00,457 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:21:11,579 | INFO | qtp1605283233-68 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1326ms
|
||||
05 一月 2026 | 00:21:19,923 | ERROR | Thread-35 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:21:19,926 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : DisconnectByServer
|
||||
05 一月 2026 | 00:21:24,414 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:21:24,673 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:21:24,976 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:21:25,109 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101555
|
||||
05 一月 2026 | 00:21:25,336 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:999225
|
||||
05 一月 2026 | 00:21:25,348 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:21:25,408 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, [115777]]
|
||||
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:21:25,438 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:21:25,511 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:21:25,539 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:8248000
|
||||
05 一月 2026 | 00:21:25,553 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:21:25,554 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:21:25,591 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
|
||||
05 一月 2026 | 00:21:25,648 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@1ede81ab
|
||||
05 一月 2026 | 00:21:25,700 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
|
||||
05 一月 2026 | 00:21:25,723 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:21:41,597 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[209], weight=2, id=1, type=2, card=209}]
|
||||
05 一月 2026 | 00:21:48,647 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[107, 106], weight=1, id=1, type=1, card=108}]
|
||||
05 一月 2026 | 00:21:49,400 | INFO | pool-3-thread-1 | hunan.DoTest | | 数据--------{}
|
||||
05 一月 2026 | 00:21:50,066 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | strList:svr8840
|
||||
05 一月 2026 | 00:21:50,420 | INFO | NetEvent-Thread | client.io.SocketEngine | | status : Connect
|
||||
05 一月 2026 | 00:21:50,686 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间-begin
|
||||
05 一月 2026 | 00:21:50,774 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | 玩家进入房间:101666
|
||||
05 一月 2026 | 00:21:51,037 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | finalRoom:room:285817
|
||||
05 一月 2026 | 00:21:51,045 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | room_list:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:21:51,114 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step1:[1, 1000, 5000, 0, 1, svr8840, 10, 10, 330800, 2, 0, 2, null]
|
||||
05 一月 2026 | 00:21:51,153 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step2:false
|
||||
05 一月 2026 | 00:21:51,154 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step3:false
|
||||
05 一月 2026 | 00:21:51,154 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step4:false
|
||||
05 一月 2026 | 00:21:51,249 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step5:false
|
||||
05 一月 2026 | 00:21:51,275 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6:false
|
||||
05 一月 2026 | 00:21:51,286 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-1:false
|
||||
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | uid_hp:5372000
|
||||
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-2:false
|
||||
05 一月 2026 | 00:21:51,287 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step6-3:false
|
||||
05 一月 2026 | 00:21:51,321 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | step7:false
|
||||
05 一月 2026 | 00:21:51,470 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | gmb:com.data.bean.GroupMemberBean@4dae1797
|
||||
05 一月 2026 | 00:21:51,522 | ERROR | pool-3-thread-1 | client.business.GroupRoomBusiness | | publicJoinRoom t_list:null
|
||||
05 一月 2026 | 00:21:51,575 | INFO | pool-3-thread-1 | client.business.GroupRoomBusiness | | server_ip:[8.138.242.190, 6311, 8.138.242.190]
|
||||
05 一月 2026 | 00:21:53,164 | INFO | NetEvent-Thread | hunan.DoTest | | tipList[{opcard=[207, 206], weight=1, id=1, type=1, card=208}, {opcard=[209, 207], weight=1, id=2, type=1, card=208}]
|
||||
05 一月 2026 | 00:22:09,936 | ERROR | Thread-43 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:29:27,570 | INFO | qtp1605283233-93 | group.controller.GroupController | | jefe_test: 112233
|
||||
05 一月 2026 | 00:29:28,037 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:612ms
|
||||
05 一月 2026 | 00:29:38,073 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:29:38,865 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:1027ms
|
||||
05 一月 2026 | 00:29:42,148 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:595ms
|
||||
05 一月 2026 | 00:29:43,128 | INFO | qtp1605283233-89 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:29:43,788 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:867ms
|
||||
05 一月 2026 | 00:29:44,094 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:498ms
|
||||
05 一月 2026 | 00:29:54,791 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:29:55,499 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:913ms
|
||||
05 一月 2026 | 00:29:56,216 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:29:56,929 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:963ms
|
||||
05 一月 2026 | 00:29:59,187 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:595ms
|
||||
05 一月 2026 | 00:30:01,874 | INFO | qtp1605283233-89 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:749ms
|
||||
05 一月 2026 | 00:30:03,299 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:382ms
|
||||
05 一月 2026 | 00:30:04,689 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:335ms
|
||||
05 一月 2026 | 00:30:10,356 | INFO | qtp1605283233-97 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:339ms
|
||||
05 一月 2026 | 00:31:24,615 | INFO | qtp1605283233-93 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:31:25,423 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:982ms
|
||||
05 一月 2026 | 00:31:39,843 | ERROR | Thread-39 | client.io.ISocket | | Receiving failed.:
|
||||
taurus.client.io.TSocketException
|
||||
at taurus.client.io.SocketTcp.__read(SocketTcp.java:131)
|
||||
at taurus.client.io.SocketTcp.access$100(SocketTcp.java:20)
|
||||
at taurus.client.io.SocketTcp$2.run(SocketTcp.java:71)
|
||||
at java.lang.Thread.run(Thread.java:750)
|
||||
05 一月 2026 | 00:31:42,399 | INFO | qtp1605283233-94 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:31:43,322 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:1121ms
|
||||
05 一月 2026 | 00:31:44,806 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:563ms
|
||||
05 一月 2026 | 00:32:02,432 | INFO | qtp1605283233-93 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:943ms
|
||||
05 一月 2026 | 00:32:04,848 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:1531ms
|
||||
05 一月 2026 | 00:32:18,304 | INFO | qtp1605283233-94 | taurus.web.WebFilter | | action: get_person_records[{user}:101777] time:238ms
|
||||
05 一月 2026 | 00:33:42,616 | INFO | qtp1605283233-100 | group.controller.GroupController | | jefe_test: 101777
|
||||
05 一月 2026 | 00:33:43,163 | INFO | qtp1605283233-100 | taurus.web.WebFilter | | action: get_groups[{user}:101777] time:657ms
|
||||
05 一月 2026 | 00:33:54,307 | INFO | qtp1605283233-100 | taurus.web.WebFilter | | action: enter_group[{user}:101777] time:461ms
|
||||
02 二月 2026 | 20:18:48,463 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
|
||||
02 二月 2026 | 20:18:48,509 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
|
||||
02 二月 2026 | 20:18:59,004 | INFO | qtp391618063-67 | group.controller.GroupController | | jefe_test: 423613
|
||||
02 二月 2026 | 20:19:00,476 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:2030ms
|
||||
02 二月 2026 | 20:19:03,346 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1565ms
|
||||
02 二月 2026 | 20:20:27,855 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1887ms
|
||||
02 二月 2026 | 20:20:52,593 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 423613
|
||||
02 二月 2026 | 20:20:53,600 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1450ms
|
||||
02 二月 2026 | 20:20:56,259 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1680ms
|
||||
02 二月 2026 | 20:21:10,659 | INFO | qtp391618063-69 | group.controller.GroupController | | jefe_test: 423613
|
||||
02 二月 2026 | 20:21:12,068 | INFO | qtp391618063-69 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1869ms
|
||||
02 二月 2026 | 20:21:15,335 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1619ms
|
||||
02 二月 2026 | 20:21:40,663 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
|
||||
02 二月 2026 | 20:21:40,702 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
|
||||
02 二月 2026 | 20:21:51,048 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:2093ms
|
||||
02 二月 2026 | 20:22:44,947 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 423613
|
||||
02 二月 2026 | 20:22:46,082 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:423613] time:1654ms
|
||||
02 二月 2026 | 20:22:48,345 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:423613] time:1588ms
|
||||
02 二月 2026 | 20:23:31,313 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_partner_data[{user}:423613] time:2348ms
|
||||
02 二月 2026 | 20:23:39,990 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_my_members[{user}:423613] time:41885ms
|
||||
02 二月 2026 | 20:23:55,533 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_my_members[{user}:423613] time:41942ms
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -10,7 +10,7 @@
|
|||
<!-- 最大连接数, 默认10个 -->
|
||||
<maxPool>100</maxPool>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>10</minIdle>
|
||||
<minIdle>5</minIdle>
|
||||
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
|
||||
<maxLifetime>180000</maxLifetime>
|
||||
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
|
||||
|
|
@ -43,9 +43,9 @@
|
|||
<db>
|
||||
<name>db1</name>
|
||||
<driverName>com.mysql.cj.jdbc.Driver</driverName>
|
||||
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
|
||||
<userName>root</userName>
|
||||
<password>6KYnXJjGhxNceF8e</password>
|
||||
<jdbcUrl>jdbc:mysql://192.168.0.11:6060/wb_game</jdbcUrl>
|
||||
<userName>proto_ff</userName>
|
||||
<password>37du_game</password>
|
||||
</db>
|
||||
</databases>
|
||||
</plugin>
|
||||
|
|
@ -58,9 +58,9 @@
|
|||
<!-- 最大连接数, 默认8个 -->
|
||||
<maxTotal>80</maxTotal>
|
||||
<!-- 最大空闲连接数, 默认8个 -->
|
||||
<maxIdle>20</maxIdle>
|
||||
<maxIdle>8</maxIdle>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>5</minIdle>
|
||||
<minIdle>2</minIdle>
|
||||
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
|
||||
<maxWaitMillis>-1</maxWaitMillis>
|
||||
<!-- 在borrow一个jedis实例时,是否提前进行alidate操作, 默认false -->
|
||||
|
|
@ -86,15 +86,14 @@
|
|||
</poolConfig>
|
||||
|
||||
<infos>
|
||||
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
|
||||
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
|
||||
<info name="group1_db0" host="127.0.0.1" password="123456" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="127.0.0.1" password="123456" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="127.0.0.1" password="123456" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="127.0.0.1" password="123456" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="127.0.0.1" password="123456" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="127.0.0.1" password="123456" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="127.0.0.1" password="123456" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="127.0.0.1" password="123456" port="6379" database="11" timeout="5000"/>
|
||||
</infos>
|
||||
</plugin>
|
||||
</serivce-core>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,13 +1,12 @@
|
|||
com\group\controller\GroupLogController.class
|
||||
com\group\service\GroupRoomService.class
|
||||
com\group\controller\GroupController.class
|
||||
com\group\Protocol.class
|
||||
com\group\job\UpdatePlayRoomJob.class
|
||||
com\group\controller\GroupRoomController.class
|
||||
com\group\MainServer.class
|
||||
com\group\service\GroupLogService.class
|
||||
com\group\WebInterceptor.class
|
||||
com\group\service\GroupRoomService.class
|
||||
com\group\MainServer$1.class
|
||||
com\group\MainServer$2.class
|
||||
com\group\service\GroupService.class
|
||||
com\group\controller\GroupController.class
|
||||
com\group\Protocol.class
|
||||
com\group\job\UpdatePlayRoomJob.class
|
||||
com\group\service\GroupPublisherService.class
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupController.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupLogController.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\WebInterceptor.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\MainServer.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\Protocol.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupRoomController.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\job\UpdatePlayRoomJob.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupRoomService.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupPublisherService.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupService.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupLogService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\WebInterceptor.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupPublisherService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupController.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\MainServer.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupLogService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupRoomService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupRoomController.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\Protocol.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\controller\GroupLogController.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\service\GroupService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\main\java\com\group\job\UpdatePlayRoomJob.java
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\test\java\web_group\Main.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\game_web\web_group\src\test\java\web_group\DataClearUtils.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\test\java\web_group\DataClearUtils.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_group\src\test\java\web_group\Main.java
|
||||
|
|
|
|||
|
|
@ -5,59 +5,21 @@
|
|||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="892daef1-3b81-4ef0-ad70-13685ff53dad" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/build/pro/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/build/pro/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/src/main/webapp/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/src/main/webapp/config/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT.war" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT.war" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/game_common-1.0.0.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.0.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-permanent-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/config/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/artifacts/web_login_war.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/artifacts/web_login_war_exploded.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer$1.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/MainServer.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/Protocol.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/Protocol.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/WebInterceptor.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/WebInterceptor.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/AccountService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/AccountService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/IndexService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/IndexService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/MilitaryService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/MilitaryService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/service/RoomService.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/service/RoomService.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/RedisKey.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/RedisKey.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread$SendTask.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread$SendTask.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSThread.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSVerification.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/com/mjlogin/util/sms/SMSVerification.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/target/test-classes/web_login/Main.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/test-classes/web_login/Main.class" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web_login.iml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/data_cache.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/data_cache/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/game_common-1.0.0.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/game_common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/hunan/HuNanChangSha.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/TEST-Test.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/surefire-reports/Test.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1-sources.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-core/target/taurus-core-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/TEST-com.taurus.Test.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/surefire-reports/com.taurus.Test.txt" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/taurus-server/taurus-web/target/taurus-web-1.0.1.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../libs/robot_common/src/main/java/taurus/util/Paixing.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/game-config.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/game-config.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-core.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-core.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-permanent.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/config/taurus-permanent.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/game_mj_hongzhong.jar" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/game_mj_hongzhong.jar" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-archiver/pom.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/../../majiang/hongzhong/game_mj_hz/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -74,26 +36,26 @@
|
|||
</MavenGeneralSettings>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"associatedIndex": 4
|
||||
}]]></component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 4
|
||||
}</component>
|
||||
<component name="ProjectId" id="1tqA838D3Q87Km1lYV2p6UNw57g" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Application.Main.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "D:/robotpro/robot_ceshi/xtserver_anchou/game_web/web_login20",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "MavenSettings",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Application.Main.executor": "Run",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "D:/robotpro/robot_ceshi/xtserver_anchou/game_web/web_login20",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "MavenSettings",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="web_login.Main" />
|
||||
|
|
@ -134,6 +96,7 @@
|
|||
<workItem from="1623486303246" duration="175000" />
|
||||
<workItem from="1623721522099" duration="17000" />
|
||||
<workItem from="1767228192018" duration="74000" />
|
||||
<workItem from="1768369631777" duration="204000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -354,6 +354,7 @@ public class AccountService extends Controller {
|
|||
|
||||
long reg_time = System.currentTimeMillis() / 1000;
|
||||
userData.putLong("reg_time", reg_time);
|
||||
userData.putInt("jiqiren", 0);
|
||||
int result = DataBase.use().insert("account", userData);
|
||||
if (result == -1) {
|
||||
throw new WebException(ErrorCode._FAILED);
|
||||
|
|
@ -857,10 +858,10 @@ public class AccountService extends Controller {
|
|||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
RedisLock lock = new RedisLock("wx_"+id, jedis0);
|
||||
try {
|
||||
Set<String> idlist = Redis.use("group1_db1").smembers("idlogin");
|
||||
/*Set<String> idlist = Redis.use("group1_db1").smembers("idlogin");
|
||||
if (!idlist.contains(id.toString())){
|
||||
throw new WebException(ErrorCode.BAN_LOGIN);
|
||||
}
|
||||
}*/
|
||||
|
||||
String password = reqData.getUtfString("password");
|
||||
if (StringUtil.isEmpty(password)) {
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,5 +1,3 @@
|
|||
#Generated by Maven
|
||||
#Wed Nov 27 21:07:07 GMT+08:00 2024
|
||||
version=1.0.0
|
||||
groupId=com.mjlogin
|
||||
artifactId=web_login
|
||||
groupId=com.mjlogin
|
||||
version=1.0.0
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\RoomService.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\RedisKey.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSVerification.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\WebInterceptor.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\AccountService.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\MilitaryService.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\IndexService.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\MainServer.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSThread.java
|
||||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\Protocol.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\Protocol.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\WebInterceptor.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\AccountService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\RedisKey.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\RoomService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSVerification.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\MainServer.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\IndexService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\service\MilitaryService.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\main\java\com\mjlogin\util\sms\SMSThread.java
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
D:\project\javapro\javapro\xtserver_anchou\game_web\web_login20\src\test\java\web_login\Main.java
|
||||
D:\fengyeserver\xtserver_anchou\game_web\web_login20\src\test\java\web_login\Main.java
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,17 +1,17 @@
|
|||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GameBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\BaseCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\CountUtil.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ErrorCode.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupMemberCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\AccountCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\BaseBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ConsumeCode.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\AccountBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupPlayBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\Utility.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupMemberBean.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupPlayCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GameCache.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\EventType.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\BaseCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ErrorCode.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupMemberCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupPlayCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupPlayBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\AccountCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\CountUtil.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GroupCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\Utility.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GameBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\cache\GameCache.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\EventType.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\BaseBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\GroupMemberBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\bean\AccountBean.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\data_cache\src\main\java\com\data\util\ConsumeCode.java
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,37 +1,37 @@
|
|||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Score.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GroupPublisherService.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\ActionEvent.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Global.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Timer.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\EventController.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GPSUtil.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateMachine.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Room.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateBase.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\SessionManager.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Constant.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Hp.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\MainServer.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\JoinRoomData.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Router.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\BasePlayBack.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GameController.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\RoomManager.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\GameInterceptor.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Player.java
|
||||
D:\robotpro\robot_ceshi\xtserver_anchou\libs\game_common\src\main\java\com\game\Util.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\EventController.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerWaitState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateBase.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\state\StateMachine.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Hp.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Constant.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GameController.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Util.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\SessionManager.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerInitState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\JoinRoomData.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerSpectatorState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomEndState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Player.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPauseState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Timer.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomWaitState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Room.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerEndState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Global.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GroupPublisherService.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\RoomDismiss.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomReloadState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\ActionEvent.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReadyState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GameInterceptor.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\GPSUtil.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerPopupState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomStartGameState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomDestoryGameState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\room\state\RoomInitState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\MainServer.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\Score.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\player\state\PlayerReloadState.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\manager\RoomManager.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\Router.java
|
||||
D:\fengyeserver\xtserver_anchou\libs\game_common\src\main\java\com\game\data\BasePlayBack.java
|
||||
|
|
|
|||
|
|
@ -1,57 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
|
@ -1 +0,0 @@
|
|||
/target/
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>robot_common</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1757754685239</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.apt.aptEnabled=false
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
log4j.rootLogger = INFO,consoleAppender,fileAppender
|
||||
|
||||
# ConsoleAppender
|
||||
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.consoleAppender.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%t] %c{2} %3x - %m%n
|
||||
|
||||
|
||||
# Regular FileAppender
|
||||
log4j.appender.fileAppender=org.apache.log4j.DailyRollingFileAppender
|
||||
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.fileAppender.File=${WORKDIR}/logs/web_main.log
|
||||
log4j.appender.fileAppender.layout.ConversionPattern=%d{dd MMM yyyy | HH:mm:ss,SSS} | %-5p | %t | %c{3} | %3x | %m%n
|
||||
log4j.appender.fileAppender.Encoding=UTF-8
|
||||
log4j.appender.fileAppender.DatePattern='.'yyyy-MM-dd
|
||||
log4j.appender.dailyFile.Append=true
|
||||
|
||||
# The file is rolled over very day
|
||||
log4j.appender.fileAppender.DatePattern ='.'yyyy-MM-dd
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<serivce-core>
|
||||
<log4jPath>log4j.properties</log4jPath>
|
||||
|
||||
<plugin>
|
||||
<id>database</id>
|
||||
<class>com.taurus.core.plugin.database.DataBasePlugin</class>
|
||||
|
||||
<poolConfig>
|
||||
<!-- 最大连接数, 默认10个 -->
|
||||
<maxPool>100</maxPool>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>10</minIdle>
|
||||
<!-- 配置获取连接等待超时的时间,单位是毫秒, 默认180000 -->
|
||||
<maxLifetime>180000</maxLifetime>
|
||||
<!--hsqldb - "select 1 from INFORMATION_SCHEMA.SYSTEM_USERS"
|
||||
Oracle - "select 1 from dual"
|
||||
DB2 - "select 1 from sysibm.sysdummy1"
|
||||
mysql - "select 1" -->
|
||||
<validationQuery>select 1</validationQuery>
|
||||
<!-- 连接超时时间,默认30000-->
|
||||
<connectionTimeout>10000</connectionTimeout>
|
||||
<!-- 待机超时时间,单位是毫秒, 默认60000 -->
|
||||
<idleTimeout>60000</idleTimeout>
|
||||
|
||||
<!-- jdbc 属性 -->
|
||||
<props>
|
||||
<useSSL>false</useSSL>
|
||||
<useUnicode>true</useUnicode>
|
||||
<characterEncoding>utf-8</characterEncoding>
|
||||
<!-- 服务器时区 -->
|
||||
<serverTimezone>UTC</serverTimezone>
|
||||
<!-- 预编译缓存 -->
|
||||
<cachePrepStmts>true</cachePrepStmts>
|
||||
<!-- 预编译缓存大小 -->
|
||||
<prepStmtCacheSize>250</prepStmtCacheSize>
|
||||
<!-- 控制长度多大的sql可以被缓存 -->
|
||||
<prepStmtCacheSqlLimit>2048</prepStmtCacheSqlLimit>
|
||||
</props>
|
||||
</poolConfig>
|
||||
|
||||
<databases>
|
||||
<db>
|
||||
<name>db1</name>
|
||||
<driverName>com.mysql.cj.jdbc.Driver</driverName>
|
||||
<jdbcUrl>jdbc:mysql://8.138.242.190:8060/wb_game</jdbcUrl>
|
||||
<userName>root</userName>
|
||||
<password>root</password>
|
||||
</db>
|
||||
</databases>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<id>redis</id>
|
||||
<class>com.taurus.core.plugin.redis.RedisPlugin</class>
|
||||
|
||||
<poolConfig>
|
||||
<!-- 最大连接数, 默认8个 -->
|
||||
<maxTotal>80</maxTotal>
|
||||
<!-- 最大空闲连接数, 默认8个 -->
|
||||
<maxIdle>20</maxIdle>
|
||||
<!-- 最小空闲连接数, 默认0个 -->
|
||||
<minIdle>5</minIdle>
|
||||
<!-- 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1 -->
|
||||
<maxWaitMillis>-1</maxWaitMillis>
|
||||
<!-- 在borrow一个jedis实例时,是否提前进行alidate操作, 默认false -->
|
||||
<testOnBorrow>true</testOnBorrow>
|
||||
<!-- 在return给pool时,是否提前进行validate操作, 默认false -->
|
||||
<testOnReturn>true</testOnReturn>
|
||||
<!-- 表示有一个idle object evitor线程对idle object进行扫描,如果validate失败,
|
||||
此object会被从pool中drop掉;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义, 默认true -->
|
||||
<testWhileIdle>true</testWhileIdle>
|
||||
<!-- 表示idle object evitor每次扫描的最多的对象数, 默认-1 -->
|
||||
<numTestsPerEvictionRun>100</numTestsPerEvictionRun>
|
||||
<!-- 表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;
|
||||
这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义 , 默认60000-->
|
||||
<minEvictableIdleTimeMillis>60000</minEvictableIdleTimeMillis>
|
||||
<!-- 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认30000 -->
|
||||
<timeBetweenEvictionRunsMillis>30000</timeBetweenEvictionRunsMillis>
|
||||
<!-- 在minEvictableIdleTimeMillis基础上,加入了至少minIdle个对象已经在pool里面了。
|
||||
如果为-1,evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillisd大于0,
|
||||
则此项设置无意义,且只有在timeBetweenEvictionRunsMillis大于0时才有意义,默认1800000 -->
|
||||
<softMinEvictableIdleTimeMillis>1800000</softMinEvictableIdleTimeMillis>
|
||||
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
|
||||
<blockWhenExhausted>true</blockWhenExhausted>
|
||||
</poolConfig>
|
||||
|
||||
<infos>
|
||||
<info name="group1_db0" host="8.138.242.190" password="cssq@2020" port="6379" database="0" timeout="5000"/>
|
||||
<info name="group1_db1" host="8.138.242.190" password="cssq@2020" port="6379" database="1" timeout="5000"/>
|
||||
<info name="group1_db2" host="8.138.242.190" password="cssq@2020" port="6379" database="2" timeout="5000"/>
|
||||
<info name="group1_db5" host="8.138.242.190" password="cssq@2020" port="6379" database="5" timeout="5000"/>
|
||||
<info name="group1_db8" host="8.138.242.190" password="cssq@2020" port="6379" database="8" timeout="5000"/>
|
||||
<info name="group1_db9" host="8.138.242.190" password="cssq@2020" port="6379" database="9" timeout="5000"/>
|
||||
<info name="group1_db10" host="8.138.242.190" password="cssq@2020" port="6379" database="10" timeout="5000"/>
|
||||
<info name="group1_db11" host="8.138.242.190" password="cssq@2020" port="6379" database="11" timeout="5000"/>
|
||||
<info name="tmp_group1_db9" host="8.138.242.190" password="654sads" port="6479" database="9" timeout="5000"/>
|
||||
</infos>
|
||||
</plugin>
|
||||
</serivce-core>
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.robot</groupId>
|
||||
<artifactId>robot_common</artifactId>
|
||||
<version>1.0.1</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>robot_common</name>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!--依赖 taurus-core -->
|
||||
<dependency>
|
||||
<groupId>com.taurus</groupId>
|
||||
<artifactId>taurus-core</artifactId>
|
||||
<version>1.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.taurus</groupId>
|
||||
<artifactId>taurus-web</artifactId>
|
||||
<version>1.0.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!--依赖 game_common -->
|
||||
<dependency>
|
||||
<groupId>com.game</groupId>
|
||||
<artifactId>game_common</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.6.1</version>
|
||||
<configuration>
|
||||
<!-- <compilerArgument>-parameters</compilerArgument> -->
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.data.bean.AccountBean;
|
||||
import com.data.cache.AccountCache;
|
||||
import com.data.util.ErrorCode;
|
||||
import com.taurus.core.entity.*;
|
||||
import com.taurus.core.plugin.database.DataBase;
|
||||
import com.taurus.core.plugin.redis.Redis;
|
||||
import com.taurus.core.util.Logger;
|
||||
import com.taurus.web.WebException;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.client.business.AccountBusiness;
|
||||
import taurus.client.business.GroupRoomBusiness;
|
||||
import taurus.util.GroupDatas;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class DoTest {
|
||||
|
||||
// 扣点点玩家手牌
|
||||
public static List<Integer> cardInhand = new ArrayList<Integer>();
|
||||
|
||||
private static final Logger log = Logger.getLogger(DoTest.class);
|
||||
|
||||
//
|
||||
// //跑得快算法
|
||||
// private static PaoDeKuaiSuanFa paoDeKuaiSuanFa;
|
||||
|
||||
//红中其它玩家打的牌
|
||||
// public static String hongZhongCard = "";
|
||||
|
||||
//扣点点别人打的牌
|
||||
public static String card = "";
|
||||
|
||||
|
||||
// 玩家座位号
|
||||
public static int seat = 0;
|
||||
// 玩家ID
|
||||
public static int playerId = 0;
|
||||
// 登录密码
|
||||
public static String password = "123456";
|
||||
// 会话标识
|
||||
public static String session = "";
|
||||
// 访问令牌
|
||||
public static String token = "";
|
||||
// 玩法ID
|
||||
public static String wanfaId = "";
|
||||
|
||||
// 客户端连接对象
|
||||
public static TaurusClient client = null;
|
||||
|
||||
public static TObject datas = null;
|
||||
|
||||
|
||||
//圈子id
|
||||
public static int groupId = 0;
|
||||
|
||||
//房间id
|
||||
public static String roomId = "";
|
||||
|
||||
public static int count = 0;
|
||||
|
||||
static final void get() {
|
||||
TObject data = GroupDatas.getData();
|
||||
datas = data;
|
||||
|
||||
}
|
||||
|
||||
public String doTest() throws Exception {
|
||||
get();
|
||||
ITArray group = datas.getTArray("groupid");
|
||||
Jedis jedis11 = Redis.use("group1_db11").getJedis();
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
try {
|
||||
|
||||
if (group.size() != 0) {
|
||||
log.info("数据--------{}", datas);
|
||||
// System.out.println("数据--------" + datas);
|
||||
ITArray robotIds = datas.getTArray("robotIds");
|
||||
int robotIndex = 0;
|
||||
|
||||
for (int i = 0; i < group.size(); i++) {
|
||||
TDataWrapper tDataWrapper = group.get(i);
|
||||
if (tDataWrapper.getTypeId() == TDataType.TOBJECT) {
|
||||
TObject roomObj = (TObject) tDataWrapper.getObject();
|
||||
|
||||
// 获取圈子id和房间列表
|
||||
Set<String> keySet = roomObj.getKeys();
|
||||
for (String groupIdStr : keySet) {
|
||||
|
||||
int currentGroupId = Integer.parseInt(groupIdStr);
|
||||
ITArray roomArray = roomObj.getTArray(groupIdStr);//玩法id
|
||||
|
||||
|
||||
//为每个房间分配一个机器人
|
||||
for (int j = 0; j < roomArray.size() && robotIndex < robotIds.size(); j++) {
|
||||
int currentPlayId = roomArray.getInt(j);
|
||||
int currentPlayerId = robotIds.getInt(robotIndex);
|
||||
|
||||
System.out.println("玩家id: " + currentPlayerId + ", 玩法id: " + currentPlayId + ", 圈子id: " + currentGroupId);
|
||||
JiQiRens jiQiRen = new JiQiRens();
|
||||
String playKey = "g{" + groupIdStr + "}:play:" + currentPlayId;
|
||||
|
||||
String leftover_robot = jedis11.hget(playKey, "leftover_robot");
|
||||
if (jedis11.hget(playKey, "leftover_robot") != null) {
|
||||
// if (Integer.parseInt(leftover_robot) > 0) {
|
||||
jiQiRen.tcp_test(currentPlayerId, currentPlayId, currentGroupId);
|
||||
robotIndex++;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清空数据
|
||||
datas.getTArray("robotIds").clear();
|
||||
datas.getTArray("groupid").clear();
|
||||
playerId = 0;
|
||||
roomId = "";
|
||||
groupId = 0;
|
||||
count = 0;
|
||||
|
||||
}
|
||||
|
||||
} finally {
|
||||
jedis11.close();
|
||||
jedis0.close();
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class HandAnalysis {
|
||||
public Map<Integer, Integer> cardCounts = new HashMap<>();
|
||||
public List<List<Integer>> completedMelds = new ArrayList<>();
|
||||
public List<Integer> pairs = new ArrayList<>();
|
||||
public List<Integer> isolatedCards = new ArrayList<>();
|
||||
public Map<Integer, Integer> cardUsefulness = new HashMap<>();
|
||||
public Map<Integer, List<Integer>> cardsBySuit = new HashMap<>();
|
||||
|
||||
|
||||
public boolean isTingPai = false;//是否听牌
|
||||
public Set<Integer> tingCards = new HashSet<>(); // 听的牌
|
||||
public int meldCount = 0; // 面子数量
|
||||
public int shantenCount = Integer.MAX_VALUE; // 向听数
|
||||
public int pairCount = 0; // 对子/将数量
|
||||
public boolean hasLongQiDuiPotential = false; // 是否有龙七对潜力
|
||||
public Set<Integer> usedInMelds = new HashSet<>(); // 用于面子的牌
|
||||
public boolean hasPengPengHu = false;//是否有碰碰胡
|
||||
public Set<Integer> usedInPairs = new HashSet<>(); // 用于对子/将的牌
|
||||
public List<Integer> remainingCards = new ArrayList<>(); // 剩余需要分析的牌
|
||||
public int lastDrawnCard = 0; // 最后摸的牌
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,55 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.game.Util;
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.plugin.database.DataBase;
|
||||
import com.taurus.core.util.Logger;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import taurus.client.Message;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.util.*;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class HuNanChangShaNew {
|
||||
|
||||
private static final Logger log = Logger.getLogger(DoTest.class);
|
||||
//湖南红中麻将手牌
|
||||
private List<Integer> changShaCardInhand = new ArrayList<>();
|
||||
|
||||
|
||||
/**
|
||||
* 初始化手牌协议 811
|
||||
* @param command
|
||||
* @param message
|
||||
* @param client
|
||||
* @return
|
||||
*/
|
||||
public String cardInHead(String command, Message message, TaurusClient client) {
|
||||
if (command.equalsIgnoreCase("811")) {
|
||||
log.info("cardInhand changsha new");
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
|
||||
ITArray cardList = param.getTArray("card_list");
|
||||
for (int i = 0; i < cardList.size(); i++) {
|
||||
changShaCardInhand.add(cardList.getInt(i));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void drawCard(String command, Message message,ITObject param) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,214 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.game.Util;
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import taurus.client.Message;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.util.CardUtil;
|
||||
import taurus.util.HongZhongSuanFaTest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class HuNanFangPaoFa {
|
||||
|
||||
public static int fangPaoFaCardCard = 0;
|
||||
|
||||
//湖南字牌放炮罚 手牌
|
||||
private List<Integer> fangPaoFaCardInhand = new ArrayList<Integer>();
|
||||
|
||||
// 玩家座位号
|
||||
public static int seat = 0;
|
||||
|
||||
// 会话标识
|
||||
public static String session = "";
|
||||
// 访问令牌
|
||||
public static String token = "";
|
||||
|
||||
public void fangPaoFaCardInhand() {
|
||||
fangPaoFaCardInhand = new ArrayList<Integer>();
|
||||
}
|
||||
|
||||
|
||||
public List<Integer> getFangPaoFaCardInhand() {
|
||||
return fangPaoFaCardInhand;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化手牌协议 811
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String cardInHead(String command, Message message, TaurusClient client) {
|
||||
if (command.equalsIgnoreCase("811")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
|
||||
ITArray cardList = param.getTArray("card_list");
|
||||
for (int i = 0; i < cardList.size(); i++) {
|
||||
fangPaoFaCardInhand.add(cardList.getInt(i));
|
||||
}
|
||||
if (fangPaoFaCardInhand.size() > 19) {
|
||||
outCard(client);
|
||||
System.out.println("机器人:" + param.getInt("seat") + "为庄家,需要出牌" + ",牌为:" + fangPaoFaCardInhand.get(0));
|
||||
}
|
||||
System.out.println("机器人:" + param.getInt("seat") + "放炮罚初始化手牌" + ",牌为:" + fangPaoFaCardInhand.toString());
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 摸牌协议 819
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String getCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("819")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
System.out.println("轮到座位号:" + param.getInt("seat") + "的用户摸牌" + ",牌为:" + param.getInt("card"));
|
||||
if (param.getInt("seat") != null && seat == param.getInt("seat")) {
|
||||
fangPaoFaCardInhand.add(param.getInt("card"));
|
||||
System.out.println("摸牌后放炮罚 手牌" + fangPaoFaCardInhand);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 出牌方法
|
||||
*/
|
||||
public String outCard(TaurusClient client) {
|
||||
ITObject params = TObject.newInstance();
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("card", fangPaoFaCardInhand.get(0));
|
||||
System.out.println("放炮罚出牌 " + fangPaoFaCardInhand.get(0));
|
||||
fangPaoFaCardInhand.remove(0);
|
||||
System.out.println("目前机器人剩余手牌:" + fangPaoFaCardInhand.toString());
|
||||
client.send("611", params, response -> {
|
||||
System.out.println("出牌成功: " + response.returnCode);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 出牌广播协议 812
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public static String drawCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("812")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
fangPaoFaCardCard = param.getInt("card");
|
||||
System.out.println("出牌广播" + fangPaoFaCardCard);
|
||||
System.out.println("座位号:" + param.getInt("seat") + "的用户出牌:" + param.getInt("card"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理 吃碰 偎提胡
|
||||
*
|
||||
* @param param 消息参数
|
||||
* @return
|
||||
*/
|
||||
public String actionCard(ITObject param, TaurusClient client) {
|
||||
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
|
||||
ITArray tipList = param.getTArray("tip_list");
|
||||
int id = 0;
|
||||
int type = 0;
|
||||
int opcard = 0;
|
||||
int opcard1 = 0;
|
||||
int card = 0;
|
||||
ITArray bi_list = null;
|
||||
ITObject params = TObject.newInstance();
|
||||
if (tipList != null && tipList.size() > 0) {
|
||||
TObject firstTip = (TObject) tipList.get(0).getObject();
|
||||
id = firstTip.getInt("id");
|
||||
type = firstTip.getInt("type");
|
||||
card = firstTip.getInt("card");
|
||||
// 获取吃牌组合中的第一张牌
|
||||
opcard = firstTip.getTArray("opcard").getInt(0);
|
||||
// 获取吃牌组合中的第二张牌
|
||||
opcard1 = firstTip.getTArray("opcard").getInt(1);
|
||||
bi_list = firstTip.getTArray("bi_list");
|
||||
System.out.println("id ++ " + id);
|
||||
System.out.println("type ++ " + type);
|
||||
System.out.println("opcard ++ " + opcard);
|
||||
System.out.println("card ++ " + card);
|
||||
System.out.println("bi_list ++ " + bi_list);
|
||||
}
|
||||
|
||||
//执行吃
|
||||
if (type == 1) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("id", id);
|
||||
CardUtil.removeCard1(fangPaoFaCardInhand, opcard, 1);
|
||||
CardUtil.removeCard1(fangPaoFaCardInhand, opcard1, 1);
|
||||
if (bi_list != null ){
|
||||
CardUtil.removeCard1(fangPaoFaCardInhand, card, 1);
|
||||
}
|
||||
System.out.println("删除吃的牌");
|
||||
//执行碰
|
||||
} else if (type == 2) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("id", id);
|
||||
CardUtil.removeCard1(fangPaoFaCardInhand, card, 1);
|
||||
System.out.println("删除碰的牌");
|
||||
//执行吃杠
|
||||
} else if (type == 3) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
// Util.removeCard(hongZhongCardInhand, opcard, 3);
|
||||
System.out.println("执行吃杠");
|
||||
} else if (type == 4) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("id", id);
|
||||
CardUtil.removeCard1(fangPaoFaCardInhand, card, 2);
|
||||
System.out.println("执行偎----");
|
||||
// 碰后补杠
|
||||
} else if (type == 5) {
|
||||
// params.putString("session", session + "," + token);
|
||||
// params.putInt("qi", 0);
|
||||
// params.putInt("id", 1);
|
||||
// Util.removeCard(hongZhongCardInhand, opcard, 1);
|
||||
// System.out.println("执行碰后补杠");
|
||||
} else if (type == 8) {
|
||||
params.putInt("id", id);
|
||||
}
|
||||
|
||||
System.out.println("调用612");
|
||||
|
||||
client.send("612", params, response -> {
|
||||
System.out.println("操作成功: " + response.returnCode);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void fangPaoTipEvent(Message message,TaurusClient client) {
|
||||
ITObject param = message.param;
|
||||
Integer card = param.getInt("card");
|
||||
ITObject params = TObject.newInstance();
|
||||
params.putInt("card", card);
|
||||
client.send("823", params, response -> {
|
||||
System.out.println("操作成功: " + response.returnCode);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,319 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.game.Util;
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import taurus.client.Message;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.util.CardUtil;
|
||||
import taurus.util.HongZhongSuanFaTest;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class HuNanHongZhong {
|
||||
|
||||
|
||||
public static int hongZhongCard = 0;
|
||||
|
||||
//湖南红中麻将手牌
|
||||
private List<Integer> hongZhongCardInhand = new ArrayList<>();
|
||||
|
||||
//红中麻将出过的牌
|
||||
private List<Integer> hongZhongchuguopai = new ArrayList<>();
|
||||
|
||||
|
||||
// 玩家座位号
|
||||
public static int seat = 0;
|
||||
|
||||
public static int playerId = 0;
|
||||
|
||||
|
||||
// 会话标识
|
||||
public static String session = "";
|
||||
// 访问令牌
|
||||
public static String token = "";
|
||||
//红中麻将算法
|
||||
// private static HongZhongSuanFa hongZhongSuanFa = new HongZhongSuanFa();
|
||||
|
||||
private static HongZhongSuanFaTest hongZhongSuanFaTest = new HongZhongSuanFaTest();
|
||||
|
||||
|
||||
|
||||
// 公共的getter和setter方法
|
||||
public List<Integer> getHongZhongCardInhand() {
|
||||
return hongZhongCardInhand;
|
||||
}
|
||||
|
||||
public List<Integer> getChuGuoCardInhand() {
|
||||
return hongZhongchuguopai;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 出牌广播协议 812
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public static String drawCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("812")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
hongZhongCard = param.getInt("card");
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 摸牌协议 819
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String getCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("819")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {seat=2, Ishupai=0, isBaoTing=-1, tingcard=0, isgang=0, card=101, left_count=106}
|
||||
|
||||
if (param.getInt("player") != null) {
|
||||
int drawnCard = param.getInt("card");
|
||||
|
||||
hongZhongSuanFaTest.drawnCards = drawnCard;
|
||||
hongZhongCardInhand.add(drawnCard);
|
||||
|
||||
// 创建包含摸牌后的完整手牌
|
||||
List<Integer> newHand = new ArrayList<>(hongZhongCardInhand);
|
||||
|
||||
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
|
||||
hongZhongSuanFaTest.separateAndAnalyzeHand(newHand);
|
||||
|
||||
// 直接调用hongZhongSuanFaTest中的analyzeDrawCard方法分析摸牌后是否可听牌
|
||||
hongZhongSuanFaTest.analyzeDrawCard(hongZhongCardInhand, drawnCard);
|
||||
|
||||
|
||||
// 调用新添加的findDiscardToTing方法,分析打出哪张牌可以听牌
|
||||
Map<Integer, Set<Integer>> discardOptions = hongZhongSuanFaTest.findDiscardToTing(newHand);
|
||||
|
||||
// 如果有可打出后听牌的选项,记录信息
|
||||
if (!discardOptions.isEmpty()) {
|
||||
// 这些信息将在出牌决策时被考虑
|
||||
} else {
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否应该碰牌
|
||||
*
|
||||
* @param proposedCard 提议碰的牌
|
||||
* @return 是否应该碰牌
|
||||
*/
|
||||
public boolean shouldPong(int proposedCard) {
|
||||
|
||||
// 直接调用hongZhongSuanFaTest中的shouldPong方法,它已经包含了所有需要的规则
|
||||
return hongZhongSuanFaTest.shouldPong(proposedCard, hongZhongCardInhand);
|
||||
|
||||
// return hongZhongSuanFaTest.shouldPong(proposedCard, Arrays.asList(305,304,303,207,207,204,204,208,208,201,201,412,412));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 初始化手牌协议 811
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String cardInHead(String command, Message message, TaurusClient client) {
|
||||
if (command.equalsIgnoreCase("811")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
|
||||
ITArray cardList = param.getTArray("card_list");
|
||||
for (int i = 0; i < cardList.size(); i++) {
|
||||
hongZhongCardInhand.add(cardList.getInt(i));
|
||||
}
|
||||
if (hongZhongCardInhand.size() > 13) {
|
||||
outCard(client);
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理杠碰胡操作
|
||||
*
|
||||
* @param param 消息参数
|
||||
* @return
|
||||
*/
|
||||
public String actionCard(ITObject param, TaurusClient client) {
|
||||
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
|
||||
ITArray tipList = param.getTArray("tip_list");
|
||||
int id = 0;
|
||||
int type = 0;
|
||||
int opcard = 0;
|
||||
ITObject params = TObject.newInstance();
|
||||
if (tipList != null && tipList.size() > 0) {
|
||||
TObject firstTip = (TObject) tipList.get(0).getObject();
|
||||
id = firstTip.getInt("id");
|
||||
type = firstTip.getInt("type");
|
||||
opcard = firstTip.getTArray("opcard").getInt(0);
|
||||
|
||||
|
||||
}
|
||||
//弃 是根据算法选择是否要弃掉 不进行碰杠胡
|
||||
//params.putInt("qi", 0);
|
||||
//params.putInt("id", 0);
|
||||
|
||||
//执行碰牌
|
||||
if (type == 2) {
|
||||
// 根据规则判断是否应该碰牌
|
||||
if (shouldPong(opcard)) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(hongZhongCardInhand, opcard, 2);
|
||||
|
||||
} else {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 1); // 放弃碰牌
|
||||
params.putInt("id", 0);
|
||||
|
||||
}
|
||||
// Global.logger.info("删除碰的牌");
|
||||
//执行胡牌
|
||||
} else if (type == 6) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
|
||||
//执行吃杠
|
||||
} else if (type == 3) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(hongZhongCardInhand, opcard, 3);
|
||||
|
||||
//执行自杠
|
||||
} else if (type == 4) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(hongZhongCardInhand, opcard, 4);
|
||||
|
||||
// 碰后补杠
|
||||
} else if (type == 5) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(hongZhongCardInhand, opcard, 1);
|
||||
|
||||
}
|
||||
|
||||
// cardInhand.remove(0);
|
||||
// cardInhand.remove(1);
|
||||
|
||||
|
||||
client.send("612", params, response -> {
|
||||
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static String changePlayer(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("820")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 出牌方法
|
||||
*/
|
||||
// public String outCard(TaurusClient client, List< Integer> list) {
|
||||
public String outCard(TaurusClient client) {
|
||||
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
|
||||
|
||||
hongZhongSuanFaTest.separateAndAnalyzeHand(hongZhongCardInhand);
|
||||
|
||||
// 红中麻将出牌
|
||||
String hongzhongOutCard = hongZhongSuanFaTest.outCardSuanFa(hongZhongCardInhand, hongZhongCard);
|
||||
// String hongzhongOutCard = hongZhongSuanFaTest.outCardSuanFa(list, hongZhongCard);
|
||||
ITObject params = TObject.newInstance();
|
||||
int cardToOut;
|
||||
if (StringUtil.isNotEmpty(hongzhongOutCard)) {
|
||||
cardToOut = Integer.parseInt(hongzhongOutCard);
|
||||
} else {
|
||||
cardToOut = hongZhongCardInhand.get(0);
|
||||
}
|
||||
params.putInt("card", cardToOut);
|
||||
|
||||
int outCountBefore = hongZhongchuguopai.size(); // 当前历史出牌数量
|
||||
|
||||
// 第n次出牌时,发送前n-1张出牌
|
||||
if (outCountBefore >= 1) {
|
||||
// 发送前n-1张(所有历史出牌)
|
||||
List<Integer> cardsToSend = hongZhongchuguopai.subList(0, outCountBefore);
|
||||
params.putTArray("outcard_list", CardUtil.maJiangToTArray(cardsToSend));
|
||||
}
|
||||
params.putTArray("card_list", CardUtil.maJiangToTArray(hongZhongCardInhand));
|
||||
|
||||
// 将当前出的牌添加到历史出牌列表
|
||||
hongZhongchuguopai.add(cardToOut);
|
||||
// 从手牌中移除
|
||||
hongZhongCardInhand.remove(Integer.valueOf(cardToOut));
|
||||
|
||||
|
||||
params.putString("session", session + "," + token);
|
||||
client.send("611", params, response -> {
|
||||
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除出过的牌组
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public String shanchuchuguopai(ITObject param) {
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
Integer card = param.getInt("card"); // 操作牌值
|
||||
Integer type = param.getInt("type"); // 操作类型
|
||||
Integer from_seat = param.getInt("from_seat"); // 牌来源座位
|
||||
|
||||
|
||||
|
||||
|
||||
if (type == 2 || type == 3 || type == 5) { // 碰,杠
|
||||
getChuGuoCardInhand().remove(Integer.valueOf(card));
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.util.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class HuNanPaoDeKuai {
|
||||
|
||||
public static int seat = 0;
|
||||
|
||||
//座位号 剩余牌数量
|
||||
private Map<Integer, List<Integer>> seatRemainHistory = new HashMap<>();
|
||||
|
||||
// 跑的快玩家手牌
|
||||
private List<CardObj> paoDekuaiCardInhand = new ArrayList<>();
|
||||
|
||||
// 会话标识
|
||||
public static String session = "";
|
||||
// 访问令牌
|
||||
public static String token = "";
|
||||
|
||||
//跑的快别人出的牌
|
||||
private ITObject card_list = TObject.newInstance();
|
||||
|
||||
public static int guangboseat = 0;
|
||||
|
||||
public static int remain = 0;
|
||||
|
||||
public Map<Integer, List<Integer>> getSeatRemainHistory() {
|
||||
return seatRemainHistory;
|
||||
}
|
||||
|
||||
public List<CardObj> getPaoDekuaiCardInhand() {
|
||||
return paoDekuaiCardInhand;
|
||||
}
|
||||
|
||||
public ITObject getCard_list() {
|
||||
return card_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 出牌方法
|
||||
*/
|
||||
public String outCard(TaurusClient client) {
|
||||
ITArray itArray = null;
|
||||
itArray = test.intelligentPaoDeKuaiOutCard(paoDekuaiCardInhand, card_list, seatRemainHistory);
|
||||
|
||||
if (remain == 1 && itArray == null) { //如果玩家的下家只有一张牌,玩家出单张必须是最大的
|
||||
CardObj maxSingleCard = CardUtil.findMaxSingleCard(paoDekuaiCardInhand);
|
||||
|
||||
itArray = CardUtil.toTArray1(maxSingleCard);
|
||||
}
|
||||
|
||||
//跑得快出牌
|
||||
|
||||
ITObject params = TObject.newInstance();
|
||||
params.putString("session", session + "," + token);
|
||||
params.putTArray("card", itArray);
|
||||
params.putTArray("all_card", CardUtil.toTArray(paoDekuaiCardInhand));
|
||||
CardUtil.removeCard(paoDekuaiCardInhand, CardUtil.toList(itArray)); //删除手牌里打过的牌
|
||||
|
||||
client.send("1013", params, response ->
|
||||
|
||||
{
|
||||
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 跑得快初始化手牌
|
||||
*
|
||||
* @param param 消息参数
|
||||
* @return
|
||||
*/
|
||||
public String paoDeKuaiCardInHead(ITObject param, TaurusClient client) {
|
||||
ITArray cardList = param.getTArray("cards");
|
||||
List<CardObj> cardObjs = new ArrayList<>();
|
||||
if (cardList.size() != 0) {
|
||||
cardObjs = CardUtil.toList(cardList);
|
||||
}
|
||||
paoDekuaiCardInhand.addAll(cardObjs);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 跑的快出牌广播
|
||||
*
|
||||
* @param param 消息参数
|
||||
* @return
|
||||
*/
|
||||
public String paoDekuaiChupaiGuangBo(ITObject param) {
|
||||
card_list = param.getTObject("card_obj");
|
||||
guangboseat = param.getInt("player");
|
||||
remain = param.getInt("remain"); //剩余牌数量
|
||||
saveRemainHistory(guangboseat, remain);
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void saveRemainHistory(int guangboseat, int remain) {
|
||||
if (!seatRemainHistory.containsKey(guangboseat)) {
|
||||
seatRemainHistory.put(guangboseat, new ArrayList<>());
|
||||
}
|
||||
seatRemainHistory.get(guangboseat).add(remain);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,338 +0,0 @@
|
|||
package hunan;
|
||||
|
||||
import com.game.Util;
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import taurus.client.Message;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.util.CardUtil;
|
||||
import taurus.util.ZhuanZhuanSuanFaTest;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class HuNanZhuanZhuan {
|
||||
|
||||
public static int zhuanZhuanCard = 0;
|
||||
|
||||
//湖南转转麻将手牌
|
||||
private List<Integer> zhuanZhuanCardInhand = new ArrayList<Integer>();
|
||||
|
||||
|
||||
//打出的牌
|
||||
private List<Integer> zhuanZhuanchuguopai = new ArrayList<>();
|
||||
|
||||
|
||||
private static ZhuanZhuanSuanFaTest zhuanZhuanFaTest = new ZhuanZhuanSuanFaTest();
|
||||
|
||||
|
||||
|
||||
// 玩家座位号
|
||||
public static int seat = 0;
|
||||
|
||||
// 会话标识
|
||||
public static String session = "";
|
||||
// 访问令牌
|
||||
public static String token = "";
|
||||
|
||||
public List<Integer> getZhuanZhuanCardInhand() {
|
||||
return zhuanZhuanCardInhand;
|
||||
}
|
||||
|
||||
public List<Integer> getZhuanZhuanchuguopai() {
|
||||
return zhuanZhuanchuguopai;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化手牌协议 811
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String cardInHead(String command, Message message, TaurusClient client ) {
|
||||
if (command.equalsIgnoreCase("811")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {bank_seat=1, laiziCard=0, laiziCard2=0, laiziCard2Before=0, jing=0, laiziCardBefore=0, card_list=[101, 103, 104, 201, 204, 207, 208, 209, 307, 309, 501, 502, 503]}
|
||||
ITArray cardList = param.getTArray("card_list");
|
||||
for (int i = 0; i < cardList.size(); i++) {
|
||||
zhuanZhuanCardInhand.add(cardList.getInt(i));
|
||||
}
|
||||
if (zhuanZhuanCardInhand.size() > 13) {
|
||||
outCard(client);
|
||||
if (!zhuanZhuanCardInhand.isEmpty()) {
|
||||
System.out.println("机器人:" + param.getInt("seat") + "为庄家,需要出牌1111" + ",牌为:" + zhuanZhuanCardInhand.get(0));
|
||||
} else {
|
||||
System.out.println("机器人:" + param.getInt("seat") + "为庄家,需要出牌1111,但手牌为空");
|
||||
}
|
||||
}
|
||||
System.out.println("机器人:" + param.getInt("bank_seat") + "初始化手牌" + ",牌为:" + zhuanZhuanCardInhand.toString());
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// ... existing code ...
|
||||
/**
|
||||
* 出牌方法
|
||||
*
|
||||
*/
|
||||
public void outCard(TaurusClient client) {
|
||||
//麻将出牌
|
||||
String zhuanzhaunOutCard = zhuanZhuanFaTest.outCardSuanFa(zhuanZhuanCardInhand, zhuanZhuanCard);
|
||||
|
||||
ITObject params = TObject.newInstance();
|
||||
int cardToOut;
|
||||
if (StringUtil.isNotEmpty(zhuanzhaunOutCard)) {
|
||||
cardToOut = Integer.parseInt(zhuanzhaunOutCard);
|
||||
}else {
|
||||
cardToOut = zhuanZhuanCardInhand.get(0);
|
||||
}
|
||||
params.putString("session", session + "," + token);
|
||||
|
||||
params.putInt("card", cardToOut);
|
||||
int outCountBefore = zhuanZhuanchuguopai.size();
|
||||
|
||||
if (outCountBefore >=1){
|
||||
List<Integer> cardsToSend = zhuanZhuanchuguopai.subList(0, outCountBefore);
|
||||
params.putTArray("outcard_list", CardUtil.maJiangToTArray(cardsToSend));
|
||||
}
|
||||
params.putTArray("card_list", CardUtil.maJiangToTArray(zhuanZhuanCardInhand));
|
||||
zhuanZhuanchuguopai.add(cardToOut);
|
||||
System.out.println("机器人出牌: " + cardToOut);
|
||||
zhuanZhuanCardInhand.remove(Integer.valueOf(cardToOut));
|
||||
System.out.println("目前机器人剩余手牌:" + zhuanZhuanCardInhand.toString());
|
||||
|
||||
client.send("611", params, response -> {
|
||||
System.out.println("出牌成功: " + response.returnCode);
|
||||
});
|
||||
|
||||
}
|
||||
// ... existing code ...
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 出牌广播协议 812
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public static String drawCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("812")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
zhuanZhuanCard = param.getInt("card");
|
||||
System.out.println("出牌广播" + zhuanZhuanCard);
|
||||
System.out.println("座位号:" + param.getInt("seat") + "的用户出牌:" + param.getInt("card"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 摸牌协议 819
|
||||
*
|
||||
* @param command 协议号
|
||||
* @param message 消息对象
|
||||
* @return
|
||||
*/
|
||||
public String getCard(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("819")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
// {seat=2, Ishupai=0, isBaoTing=-1, tingcard=0, isgang=0, card=101, left_count=106}
|
||||
int card = param.getInt("card");
|
||||
System.out.println("轮到座位号:" + param.getInt("seat") + "的用户摸牌" + ",牌为:" + card);
|
||||
if (param.getInt("player") != null) {
|
||||
zhuanZhuanCardInhand.add(card);
|
||||
|
||||
// 添加摸牌分析逻辑
|
||||
System.out.println("\n===== 摸牌分析开始 =====");
|
||||
|
||||
// 创建包含摸牌后的手牌副本
|
||||
List<Integer> tempHand = new ArrayList<>(zhuanZhuanCardInhand);
|
||||
tempHand.sort(Integer::compareTo);
|
||||
|
||||
// 调用算法类进行摸牌分析
|
||||
if (zhuanZhuanFaTest != null) {
|
||||
boolean isTing = zhuanZhuanFaTest.analyzeDrawCard(zhuanZhuanCardInhand, card);
|
||||
|
||||
// 如果摸牌后可以听牌,记录信息
|
||||
if (isTing) {
|
||||
System.out.println("\n摸牌后已进入听牌状态!");
|
||||
}
|
||||
|
||||
// 分析打出哪张牌可以听牌
|
||||
Map<Integer, Set<Integer>> discardToTingMap = zhuanZhuanFaTest.findDiscardToTing(tempHand);
|
||||
if (discardToTingMap != null && !discardToTingMap.isEmpty()) {
|
||||
System.out.println("可打出后听牌的牌数量: " + discardToTingMap.size());
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println("===== 摸牌分析结束 =====");
|
||||
// cardInhand.add(104);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String changePlayer(String command, Message message) {
|
||||
if (command.equalsIgnoreCase("820")) {
|
||||
ITObject param = message.param;
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
System.out.println("出牌权转移到座位号:" + param.getInt("seat") + "的用户");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理杠碰胡操作
|
||||
*
|
||||
* @param param 消息参数
|
||||
* @return
|
||||
*/
|
||||
public String actionCard(ITObject param,TaurusClient client) {
|
||||
//获取碰杠胡参数 type 和id 后续算法接入,是否能让碰和杠
|
||||
ITArray tipList = param.getTArray("tip_list");
|
||||
int id = 0;
|
||||
int type = 0;
|
||||
int opcard = 0;
|
||||
ITObject params = TObject.newInstance();
|
||||
if (tipList != null && tipList.size() > 0) {
|
||||
TObject firstTip = (TObject) tipList.get(0).getObject();
|
||||
id = firstTip.getInt("id");
|
||||
type = firstTip.getInt("type");
|
||||
opcard = firstTip.getTArray("opcard").getInt(0);
|
||||
System.out.println("id ++ " + id);
|
||||
System.out.println("type ++ " + type);
|
||||
System.out.println("机器人收到牌:" + opcard + ",当前手牌:" + zhuanZhuanCardInhand);
|
||||
}
|
||||
//弃 是根据算法选择是否要弃掉 不进行碰杠胡
|
||||
//params.putInt("qi", 0);
|
||||
//params.putInt("id", 0);
|
||||
|
||||
// 如果是碰操作,使用算法判断是否应该碰
|
||||
if (type == 2 && zhuanZhuanFaTest != null) {
|
||||
// 复制当前手牌进行分析
|
||||
List<Integer> tempHands = new ArrayList<>(zhuanZhuanCardInhand);
|
||||
// 使用算法判断是否应该碰牌
|
||||
boolean shouldPong = zhuanZhuanFaTest.shouldPong(opcard, tempHands);
|
||||
if (!shouldPong) {
|
||||
// 如果算法判断不应该碰,设置放弃操作
|
||||
params.putInt("qi", 1);
|
||||
params.putInt("id", 0);
|
||||
System.out.println("智能决策:不碰该牌,保持手牌灵活性");
|
||||
|
||||
client.send("612", params, response -> {
|
||||
System.out.println("操作成功: " + response.returnCode);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是杠操作,使用算法判断是否应该杠
|
||||
if (type == 3 || type == 4 || type == 5) {
|
||||
if (zhuanZhuanFaTest != null) {
|
||||
List<Integer> tempHands = new ArrayList<>(zhuanZhuanCardInhand);
|
||||
boolean shouldGang = zhuanZhuanFaTest.shouldGang(opcard, tempHands, type);
|
||||
if (!shouldGang) {
|
||||
params.putInt("qi", 1);
|
||||
params.putInt("id", 0);
|
||||
System.out.println("智能决策:不杠该牌,保持手牌灵活性");
|
||||
|
||||
client.send("612", params, response -> {
|
||||
System.out.println("操作成功: " + response.returnCode);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//执行碰牌
|
||||
if (type == 2) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(zhuanZhuanCardInhand, opcard, 2);
|
||||
System.out.println("执行碰牌:" + opcard);
|
||||
// Global.logger.info("删除碰的牌");
|
||||
//执行胡牌
|
||||
} else if (type == 6) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
System.out.println("执行胡牌:" + opcard);
|
||||
//执行吃杠
|
||||
} else if (type == 3) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(zhuanZhuanCardInhand, opcard, 3);
|
||||
System.out.println("执行吃杠:" + opcard);
|
||||
//执行自杠
|
||||
} else if (type == 4) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(zhuanZhuanCardInhand, opcard, 4);
|
||||
System.out.println("执行自杠:" + opcard);
|
||||
// 碰后补杠
|
||||
} else if (type == 5) {
|
||||
params.putString("session", session + "," + token);
|
||||
params.putInt("qi", 0);
|
||||
params.putInt("id", 1);
|
||||
Util.removeCard(zhuanZhuanCardInhand, opcard, 1);
|
||||
System.out.println("执行碰后补杠:" + opcard);
|
||||
}
|
||||
|
||||
// cardInhand.remove(0);
|
||||
// cardInhand.remove(1);
|
||||
System.out.println("执行id为:" + 0 + "的操作");
|
||||
|
||||
client.send("612", params, response -> {
|
||||
System.out.println("操作成功: " + response.returnCode);
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除出过的牌组
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
public String shanchuchuguopai(ITObject param) {
|
||||
if (param == null) {
|
||||
return null;
|
||||
}
|
||||
Integer card = param.getInt("card"); // 操作牌值
|
||||
Integer type = param.getInt("type"); // 操作类型
|
||||
Integer from_seat = param.getInt("from_seat"); // 牌来源座位
|
||||
System.out.println("删除出过的牌组 card " + card);
|
||||
System.out.println("删除出过的牌组 type " + type);
|
||||
System.out.println("删除出过的牌组 from_seat " + from_seat);
|
||||
System.out.println("机器人 seat " + seat);
|
||||
|
||||
if (type == 2 || type == 3 || type == 5) { // 碰,杠
|
||||
zhuanZhuanchuguopai.remove(Integer.valueOf(card));
|
||||
System.out.println("删除出过的牌组 成功");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,226 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.ConnectException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.URL;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.util.ICallback;
|
||||
import com.taurus.core.util.ByteArray;
|
||||
import com.taurus.core.util.Logger;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import com.taurus.core.util.Utils;
|
||||
|
||||
import taurus.client.TaurusClient.ConnectionProtocol;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Http缃戠粶璇锋眰澶勭悊绫?
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class HttpClient implements ISocketLayer {
|
||||
private static final Logger logger = Logger.getLogger(HttpClient.class);
|
||||
private static final byte[] NULL_BYTES = new byte[0];
|
||||
private static final String _Method = "POST";
|
||||
private static final String _ContentTypeName = "Content-Type";
|
||||
private static final String _ContentType = "application/octet-stream";
|
||||
private static final String _Result = "$r";
|
||||
private static final String _Param = "$p";
|
||||
private static final String _Session = "$s";
|
||||
private static final String _Version = "$v";
|
||||
String _url;
|
||||
String _session_id = "";
|
||||
|
||||
final Queue<Runnable> _actionQueue = new LinkedList<Runnable>();
|
||||
|
||||
|
||||
public HttpClient(String url) {
|
||||
_url = url;
|
||||
}
|
||||
|
||||
private void __sendMsg(Message msg) {
|
||||
byte[] bytes = NULL_BYTES;
|
||||
ITObject _data = TObject.newInstance();
|
||||
_data.putString(_Session, _session_id);
|
||||
_data.putInt(_Version, NetManager.VERSION);
|
||||
if (msg.useText && msg.param == null) {
|
||||
if (StringUtil.isEmpty(msg.textParam)) {
|
||||
msg.param = TObject.newInstance();
|
||||
} else {
|
||||
try {
|
||||
msg.param = TObject.newFromJsonData(msg.textParam);
|
||||
} catch (Exception e) {
|
||||
msg.param = TObject.newInstance();
|
||||
}
|
||||
}
|
||||
}
|
||||
_data.putTObject(_Param, msg.param);
|
||||
ByteArray buff = new ByteArray(_data.toBinary());
|
||||
try {
|
||||
buff.compress();
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
}
|
||||
bytes = buff.bytes();
|
||||
|
||||
__requestAsync(msg, bytes);
|
||||
}
|
||||
|
||||
private void __requestAsync(final Message msg,byte[] bytes) {
|
||||
OutputStream out = null;
|
||||
InputStream in = null;
|
||||
int code = 500;
|
||||
HttpURLConnection conn = null;
|
||||
try {
|
||||
|
||||
URL realUrl = new URL(_url + msg.command);
|
||||
conn = (HttpURLConnection) realUrl.openConnection();
|
||||
conn.setDoOutput(true);
|
||||
conn.setDoInput(true);
|
||||
conn.setRequestProperty(_ContentTypeName, _ContentType);
|
||||
conn.setUseCaches(false);// Post 璇锋眰涓嶈兘浣跨敤缂撳瓨
|
||||
conn.setRequestMethod(_Method);
|
||||
conn.setConnectTimeout(NetManager.TIMEOUT_TIME * 1000);
|
||||
conn.setReadTimeout(NetManager.TIMEOUT_TIME * 1000);
|
||||
conn.connect();
|
||||
|
||||
|
||||
out = conn.getOutputStream();
|
||||
out.write(bytes);
|
||||
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
in = conn.getInputStream();
|
||||
bytes = Utils.uncompress(in);
|
||||
if (bytes!=null) {
|
||||
|
||||
ITObject tem = TObject.newFromBinaryData(bytes);
|
||||
int result = tem.getInt(_Result);
|
||||
|
||||
if (result == 0) {
|
||||
ITObject _param = tem.getTObject(_Param);
|
||||
msg.param = _param;
|
||||
if(msg.useText) {
|
||||
msg.textParam = _param.toJson();
|
||||
}
|
||||
}
|
||||
code = result;
|
||||
|
||||
}
|
||||
}
|
||||
} catch (SocketTimeoutException e) {
|
||||
logger.error(e);
|
||||
code = 102;
|
||||
} catch (ConnectException ex1) {
|
||||
logger.error(ex1);
|
||||
code = 101;
|
||||
} catch (Exception ex2) {
|
||||
logger.error(ex2);
|
||||
code = 500;
|
||||
}finally {
|
||||
try {
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
logger.error(ex);
|
||||
}
|
||||
try {
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
}catch (IOException ex) {
|
||||
logger.error(ex);
|
||||
}
|
||||
if(conn!=null) {
|
||||
conn.disconnect();
|
||||
}
|
||||
}
|
||||
if (msg.callback != null) {
|
||||
final MessageResponse response = new MessageResponse();
|
||||
response.messageData = msg;
|
||||
response.returnCode = code;
|
||||
enqueueActionForDispatch(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
msg.callback.action(response);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(String ip, String game) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
|
||||
}
|
||||
|
||||
private void enqueueActionForDispatch(Runnable action) {
|
||||
synchronized (_actionQueue) {
|
||||
_actionQueue.offer(action);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processEvent() {
|
||||
while (true) {
|
||||
Runnable myAction;
|
||||
synchronized (_actionQueue) {
|
||||
if (_actionQueue.size() <= 0) {
|
||||
break;
|
||||
}
|
||||
myAction = _actionQueue.poll();
|
||||
}
|
||||
myAction.run();
|
||||
}
|
||||
}
|
||||
|
||||
public void write(final Message msg) {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
__sendMsg(msg);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public int getAveragePingTime() {
|
||||
return 1000;
|
||||
}
|
||||
|
||||
public void setSession(String session) {
|
||||
_session_id = session == null ? StringUtil.Empty : session;
|
||||
}
|
||||
|
||||
public String getSession() {
|
||||
return _session_id;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnConnect(ICallback<SocketCode> onConnect) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnEvent(ICallback<Message> onEvent) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConnectionProtocol getProtocol() {
|
||||
return ConnectionProtocol.Web;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import com.taurus.core.util.ICallback;
|
||||
|
||||
import taurus.client.TaurusClient.ConnectionProtocol;
|
||||
|
||||
/**
|
||||
* 网络协议处理通用接口
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public interface ISocketLayer {
|
||||
/**
|
||||
* 连接服务器
|
||||
* @param ip
|
||||
* @param game
|
||||
*/
|
||||
public void connect(String ip, String game);
|
||||
|
||||
/**
|
||||
* 断开连接
|
||||
*/
|
||||
public void disconnect();
|
||||
|
||||
/**
|
||||
* 处理事件
|
||||
*/
|
||||
public void processEvent();
|
||||
|
||||
/**
|
||||
* 发送消息
|
||||
* @param msg
|
||||
*/
|
||||
public void write(Message msg);
|
||||
|
||||
/**
|
||||
* get Protocol type
|
||||
* @return
|
||||
*/
|
||||
public ConnectionProtocol getProtocol();
|
||||
|
||||
/**
|
||||
* 设置连接状态回调
|
||||
*/
|
||||
public void setOnConnect(ICallback<SocketCode> onConnect);
|
||||
|
||||
|
||||
/**
|
||||
* 设置事件消息回调E
|
||||
*/
|
||||
public void setOnEvent(ICallback<Message> onEvent);
|
||||
|
||||
/**
|
||||
* 网络延时
|
||||
*/
|
||||
public int getAveragePingTime();
|
||||
|
||||
/**
|
||||
* 获取服务器Session字符
|
||||
*/
|
||||
public String getSession();
|
||||
|
||||
/**
|
||||
* 设置服务器Session字符
|
||||
* @param session
|
||||
*/
|
||||
public void setSession(String session);
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.util.ICallback;
|
||||
|
||||
/**
|
||||
* 网络协议消息包
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class Message {
|
||||
/**
|
||||
* 使用文本,不转换ITObject
|
||||
*/
|
||||
public boolean useText;
|
||||
/**
|
||||
* 网络协议指令Key
|
||||
*/
|
||||
public String command;
|
||||
|
||||
/**
|
||||
* 参数
|
||||
*/
|
||||
public ITObject param;
|
||||
/**
|
||||
* 文本数据
|
||||
*/
|
||||
public String textParam;
|
||||
|
||||
/**
|
||||
* 网络消息回调
|
||||
*/
|
||||
public ICallback<MessageResponse> callback;
|
||||
/**
|
||||
* 自定义参数
|
||||
*/
|
||||
public Object data;
|
||||
/**
|
||||
* 网络包最后写入时间
|
||||
*/
|
||||
public long lastTime;
|
||||
/**
|
||||
* 网络包返回匹配的GID
|
||||
*/
|
||||
public int gid;
|
||||
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
/**
|
||||
* 缃戠粶娑堟伅鍥炶皟鏁版嵁瀵硅薄
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class MessageResponse {
|
||||
/**
|
||||
* 娑堟伅鏁版嵁
|
||||
*/
|
||||
public Message messageData;
|
||||
/**
|
||||
* 杩斿洖缁撴瀯鍊?
|
||||
*/
|
||||
public int returnCode;
|
||||
}
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 网络管理对象
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class NetManager {
|
||||
|
||||
private static List<TaurusClient> _clientList = new ArrayList<TaurusClient>();
|
||||
private static Map<Integer, TaurusClient> _clientMap = new HashMap<Integer, TaurusClient>();
|
||||
|
||||
/**
|
||||
* 网络超时时间
|
||||
*/
|
||||
public static int TIMEOUT_TIME = 10;
|
||||
/**
|
||||
* 网络版本号
|
||||
*/
|
||||
public static int VERSION = 10;
|
||||
public static boolean debug_print = false;
|
||||
|
||||
static void addNetClient(TaurusClient net) {
|
||||
if (net == null) {
|
||||
throw new RuntimeException("TaurusClient is null, it can't be added.");
|
||||
}
|
||||
if (_clientMap.containsKey(net.getId())) {
|
||||
throw new RuntimeException("A client with id: " + net.getId() + " already exists! Controller can't be added: " + net);
|
||||
}
|
||||
synchronized (_clientList) {
|
||||
_clientMap.put(net.getId(), net);
|
||||
_clientList.add(net);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The process events
|
||||
*/
|
||||
public static void processEvents() {
|
||||
for (int i = 0; i < _clientList.size(); ++i) {
|
||||
TaurusClient nc = _clientList.get(i);
|
||||
if (nc._kill){
|
||||
synchronized (_clientList) {
|
||||
_clientMap.remove(nc.getId());
|
||||
_clientList.remove(nc);
|
||||
}
|
||||
i--;
|
||||
continue;
|
||||
}else{
|
||||
nc.processEvent();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回指定的NetClient
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static TaurusClient getNetClient(int id) {
|
||||
for (int i = 0; i < _clientList.size(); ++i) {
|
||||
TaurusClient nc = _clientList.get(i);
|
||||
if (nc.getId() == id)
|
||||
return nc;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 断开指定连接
|
||||
* @param id
|
||||
*/
|
||||
public static void killConnection(int id) {
|
||||
for (int i = 0; i < _clientList.size(); ++i) {
|
||||
TaurusClient nc = _clientList.get(i);
|
||||
if (nc.getId() == id) {
|
||||
nc.killConnection();
|
||||
synchronized (_clientList) {
|
||||
_clientMap.remove(id);
|
||||
_clientList.remove(nc);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 断开所有连接
|
||||
*/
|
||||
public static void killAllConnection() {
|
||||
synchronized (_clientList) {
|
||||
for (TaurusClient nc : _clientList) {
|
||||
nc.killConnection();
|
||||
}
|
||||
_clientList.clear();
|
||||
_clientMap.clear();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
/**
|
||||
* Socket code
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public enum SocketCode{
|
||||
/**
|
||||
* 杩炴帴鎴愬姛
|
||||
*/
|
||||
Connect,
|
||||
Disconnect,
|
||||
/**
|
||||
* 鏈煡寮傚父
|
||||
*/
|
||||
Exception,
|
||||
/**
|
||||
* 杩炴帴鏈嶅姟寮傚父
|
||||
*/
|
||||
ExceptionOnConnect,
|
||||
/**
|
||||
* 鍙戦€佹暟鎹祦閿欒
|
||||
*/
|
||||
SendError,
|
||||
/**
|
||||
* 鎺ユ敹鏈嶅姟鍣ㄦ暟鎹祦寮傚父
|
||||
*/
|
||||
ExceptionOnReceive,
|
||||
/**
|
||||
* 鏈嶅姟鍣ㄨ繛鎺ヨ秴鏃?
|
||||
*/
|
||||
TimeoutDisconnect,
|
||||
/**
|
||||
* 鏈嶅姟鍣ㄦ柇寮€杩炴帴
|
||||
*/
|
||||
DisconnectByServer,
|
||||
/**
|
||||
* 瀹㈡埛绔綉缁滃紓甯?
|
||||
*/
|
||||
NetworkException,
|
||||
/**
|
||||
* 杩炴帴瀹夊叏寮傚父锛屼竴鑸负闃茬伀澧欓樆姝?
|
||||
*/
|
||||
SecurityExceptionOnConnect
|
||||
}
|
||||
|
|
@ -1,354 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.events.Event;
|
||||
import com.taurus.core.events.EventDispatcher;
|
||||
import com.taurus.core.events.IEventListener;
|
||||
import com.taurus.core.util.*;
|
||||
|
||||
import taurus.client.io.SocketEngine;
|
||||
|
||||
|
||||
/**
|
||||
* 缃戠粶鏍稿績鍔熻兘澶勭悊绫?
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class TaurusClient {
|
||||
private static final Logger logger = Logger.getLogger(TaurusClient.class);
|
||||
private int _id;
|
||||
private boolean _connect;
|
||||
private String _gameId;
|
||||
private String _currentIp;
|
||||
|
||||
private ISocketLayer _scoket;
|
||||
private ThreadManager _threadManager;
|
||||
|
||||
private EventDispatcher _dispatcher;
|
||||
private Map<Message, ICallback<MessageResponse>> _responseMap;
|
||||
volatile boolean _kill = false;
|
||||
private static int _tempID;
|
||||
private int _protocolCompression=100;
|
||||
|
||||
private static int _getValidID() {
|
||||
return ++_tempID;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param host
|
||||
* @param game
|
||||
* @param protocol
|
||||
*/
|
||||
public TaurusClient(String host, String game, ConnectionProtocol protocol) {
|
||||
ISocketLayer socket = null;
|
||||
switch (protocol) {
|
||||
case Tcp:
|
||||
socket = new SocketEngine(this);
|
||||
break;
|
||||
case Web:
|
||||
socket = new HttpClient(host);
|
||||
_connect = true;
|
||||
break;
|
||||
default:
|
||||
socket = new SocketEngine(this);
|
||||
break;
|
||||
}
|
||||
__initialize(host, game, socket);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param host
|
||||
* @param game
|
||||
* @param socket
|
||||
* @param protocol
|
||||
*/
|
||||
public TaurusClient(String host, String game, ISocketLayer socket) {
|
||||
__initialize(host, game, socket);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 娣诲姞浜嬩欢
|
||||
* @param eventType
|
||||
* @param listener
|
||||
*/
|
||||
public void addEventListener(String eventType, IEventListener listener) {
|
||||
_dispatcher.addEventListener(eventType, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 绉婚櫎鎵€鏈変簨浠?
|
||||
*/
|
||||
public void removeAllListener() {
|
||||
_dispatcher.removeAllListener();
|
||||
}
|
||||
|
||||
/**
|
||||
* 绉婚櫎鎸囧畾浜嬩欢
|
||||
* @param eventType
|
||||
* @param listener
|
||||
*/
|
||||
public void removeEventListener(String eventType, IEventListener listener) {
|
||||
_dispatcher.removeEventListener(eventType, listener);
|
||||
}
|
||||
|
||||
private void __initialize(String host, String game, ISocketLayer socket) {
|
||||
_dispatcher = new EventDispatcher();
|
||||
_responseMap = new HashMap<Message, ICallback<MessageResponse>>();
|
||||
_id = _getValidID();
|
||||
NetManager.addNetClient(this);
|
||||
_currentIp = host;
|
||||
_gameId = game;
|
||||
_threadManager = new ThreadManager();
|
||||
_threadManager.start();
|
||||
_scoket = socket;
|
||||
_scoket.setOnConnect(new ICallback<SocketCode>() {
|
||||
@Override
|
||||
public void action(SocketCode code) {
|
||||
if (code == SocketCode.Connect)
|
||||
_connect = true;
|
||||
else
|
||||
_connect = false;
|
||||
Event evt = new Event(NetClientEvent.Connect);
|
||||
evt.setParameter("code", code);
|
||||
_dispatcher.dispatchEvent(evt);
|
||||
}
|
||||
});
|
||||
_scoket.setOnEvent(new ICallback<Message>() {
|
||||
@Override
|
||||
public void action(Message msg) {
|
||||
if (_connect) {
|
||||
Event evt = new Event(NetClientEvent.OnEvent);
|
||||
evt.setParameter("msg", msg);
|
||||
_dispatcher.dispatchEvent(evt);
|
||||
if (NetManager.debug_print){
|
||||
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
|
||||
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
|
||||
logger.debug("Event [" + str + "->" + msg.command + "] data:" + data_str);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 杩炴帴鏈嶅姟鍣?
|
||||
*/
|
||||
public void connect() {
|
||||
_scoket.connect(_currentIp, _gameId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill net connection.
|
||||
*/
|
||||
public void killConnection() {
|
||||
removeAllListener();
|
||||
_responseMap.clear();
|
||||
_threadManager.stop();
|
||||
_scoket.disconnect();
|
||||
_connect = false;
|
||||
_kill = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 鍙戦€佺綉缁滄秷鎭寘
|
||||
* @param msg 娑堟伅鏁版嵁瀵硅薄
|
||||
*/
|
||||
protected void send(Message msg) {
|
||||
if (msg == null)
|
||||
return;
|
||||
if (NetManager.debug_print) {
|
||||
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
|
||||
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
|
||||
str = "Requst [" + str + "->" + msg.command + "] ->data:" + data_str;
|
||||
logger.debug(str);
|
||||
}
|
||||
if (msg.callback != null) {
|
||||
_responseMap.put(msg, msg.callback);
|
||||
msg.callback = new ICallback<MessageResponse>() {
|
||||
|
||||
@Override
|
||||
public void action(MessageResponse response) {
|
||||
ICallback<MessageResponse> callback = _responseMap.get(response.messageData);
|
||||
if (callback == null) {
|
||||
return;
|
||||
}
|
||||
if (NetManager.debug_print){
|
||||
String str = getProtocol() == ConnectionProtocol.Web ? "WEB" : "TCP";
|
||||
String data_str = msg.useText ? msg.textParam : (msg.param != null ? msg.param.toJson() : "null");
|
||||
str = "Response [" + str + "->" + msg.command + "] ->result:"+ response.returnCode + " param:" + data_str;
|
||||
logger.debug(str);
|
||||
}
|
||||
_responseMap.remove(response.messageData);
|
||||
callback.action(response);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
_threadManager.enqueueSend(new ICallback<Message>() {
|
||||
@Override
|
||||
public void action(Message msg) {
|
||||
sendData(msg);
|
||||
}
|
||||
}, msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 鍙戦€佺綉缁滄秷鎭寘
|
||||
* @param cmd 缃戠粶鍗忚鎸囦护Key
|
||||
* @param param 鍙傛暟
|
||||
* @param callback 缃戠粶娑堟伅鍥炶皟
|
||||
* @return
|
||||
*/
|
||||
public Message send(String cmd, ITObject param, ICallback<MessageResponse> callback) {
|
||||
Message msg = new Message();
|
||||
msg.useText = false;
|
||||
msg.command = cmd;
|
||||
msg.param = param;
|
||||
msg.callback = callback;
|
||||
this.send(msg);
|
||||
return msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 鍙戦€佺綉缁滄秷鎭寘
|
||||
* @param cmd 缃戠粶鍗忚鎸囦护Key
|
||||
* @param text JSON 鏂囨湰
|
||||
* @param callback 缃戠粶娑堟伅鍥炶皟
|
||||
* @return
|
||||
*/
|
||||
public Message sendText(String cmd, String text, ICallback<MessageResponse> callback) {
|
||||
Message msg = new Message();
|
||||
msg.command = cmd;
|
||||
msg.textParam = text;
|
||||
msg.callback = callback;
|
||||
msg.useText = true;
|
||||
this.send(msg);
|
||||
return msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 鍙戦€佹暟鎹嚎绋嬫柟娉?
|
||||
* @param message
|
||||
*/
|
||||
private void sendData(Message msg) {
|
||||
_scoket.write(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 澶勭悊浜嬩欢
|
||||
*/
|
||||
void processEvent() {
|
||||
if(_scoket!=null) {
|
||||
_scoket.processEvent();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 娓呯悊鍝嶅簲鍥炶皟
|
||||
*/
|
||||
public void clearResponse() {
|
||||
_responseMap.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* The net client id
|
||||
* @return
|
||||
*/
|
||||
public int getId() {
|
||||
|
||||
return _id;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The curren ip
|
||||
* @return
|
||||
*/
|
||||
public String getCurrentIp() {
|
||||
return _currentIp;
|
||||
}
|
||||
|
||||
/**
|
||||
* The curren Game ID
|
||||
* @return
|
||||
*/
|
||||
public String getGameID() {
|
||||
return _gameId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 缃戠粶鏄惁宸茶繛鎺?
|
||||
* @return
|
||||
*/
|
||||
public boolean isConnected() {
|
||||
return _connect;
|
||||
}
|
||||
|
||||
/**
|
||||
* 褰撳墠缃戠粶绫诲瀷
|
||||
* @return
|
||||
*/
|
||||
public ConnectionProtocol getProtocol() {
|
||||
return _scoket.getProtocol();
|
||||
}
|
||||
|
||||
/**
|
||||
* 缃戠粶寤舵椂
|
||||
* @return
|
||||
*/
|
||||
public int getAveragePingTime() {
|
||||
return _scoket.getAveragePingTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* 鑾峰彇鏈嶅姟鍣⊿ession瀛楃
|
||||
* @return
|
||||
*/
|
||||
public String getSession() {
|
||||
return _scoket.getSession();
|
||||
}
|
||||
|
||||
/**
|
||||
* 璁剧疆鏈嶅姟鍣⊿ession瀛楃
|
||||
* @param session
|
||||
*/
|
||||
public void setSession(String session) {
|
||||
_scoket.setSession(session);
|
||||
}
|
||||
|
||||
/**
|
||||
* 璁剧疆鍘嬬缉闃€鍊?
|
||||
* @param protocolCompression
|
||||
*/
|
||||
public void setProtocolCompression(int protocolCompression) {
|
||||
_protocolCompression = protocolCompression;
|
||||
}
|
||||
|
||||
/**
|
||||
* 鑾峰彇鍘嬬缉闃€鍊?
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getProtocolCompression() {
|
||||
return _protocolCompression;
|
||||
}
|
||||
|
||||
|
||||
public static enum ConnectionProtocol {
|
||||
Tcp, Web,
|
||||
}
|
||||
|
||||
public static class NetClientEvent {
|
||||
public static final String Connect = "connect";
|
||||
|
||||
public static final String OnEvent = "onevent";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
package taurus.client;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
import java.util.Stack;
|
||||
|
||||
import com.taurus.core.util.ICallback;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 网络(读/写) 线程管理
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class ThreadManager {
|
||||
class MessgaeThread {
|
||||
public ICallback<Message> _dataDelegate;
|
||||
|
||||
public Message _message;
|
||||
}
|
||||
|
||||
private boolean _running = false;
|
||||
private Thread _outThread;
|
||||
private boolean _outHasQueuedItems = false;
|
||||
private Queue<MessgaeThread> _outThreadQueue = new LinkedList<MessgaeThread>();
|
||||
private Object _outQueueLocker = new Object();
|
||||
private Stack<MessgaeThread> pool = new Stack<MessgaeThread>();
|
||||
|
||||
private MessgaeThread MessgaeThreadGet() {
|
||||
if (pool.size() > 0) {
|
||||
MessgaeThread msg = pool.pop();
|
||||
return msg;
|
||||
} else
|
||||
return new MessgaeThread();
|
||||
}
|
||||
|
||||
private void MessgaeThreadReturn(MessgaeThread value) {
|
||||
pool.push(value);
|
||||
value._dataDelegate = null;
|
||||
value._message = null;
|
||||
}
|
||||
|
||||
private static void sleep(int ms) {
|
||||
try {
|
||||
Thread.sleep(ms);
|
||||
} catch (InterruptedException e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void outThread() {
|
||||
while (_running) {
|
||||
sleep(5);
|
||||
if (_outHasQueuedItems) {
|
||||
Object obj = _outQueueLocker;
|
||||
synchronized (obj) {
|
||||
while (_outThreadQueue.size() > 0) {
|
||||
MessgaeThread item = _outThreadQueue.poll();
|
||||
processOutItem(item);
|
||||
}
|
||||
_outHasQueuedItems = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processOutItem(MessgaeThread item) {
|
||||
ICallback<Message> _dataDelegate = item._dataDelegate;
|
||||
Message message = item._message;
|
||||
MessgaeThreadReturn(item);
|
||||
if (_dataDelegate != null) {
|
||||
_dataDelegate.action(message);
|
||||
}
|
||||
}
|
||||
|
||||
public void start() {
|
||||
if (_running) {
|
||||
return;
|
||||
}
|
||||
_running = true;
|
||||
if (_outThread == null) {
|
||||
_outThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
outThread();
|
||||
}
|
||||
});
|
||||
_outThread.start();
|
||||
_outThread.setName("WriteMessage");
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
stopThread();
|
||||
}
|
||||
});
|
||||
thread.start();
|
||||
}
|
||||
|
||||
private void stopThread() {
|
||||
_running = false;
|
||||
|
||||
if (_outThread != null) {
|
||||
_outThread.interrupt();
|
||||
}
|
||||
_outThread = null;
|
||||
}
|
||||
|
||||
public void enqueueSend(ICallback<Message> callback, Message message) {
|
||||
MessgaeThread hashtable = MessgaeThreadGet();
|
||||
hashtable._dataDelegate = callback;
|
||||
hashtable._message = message;
|
||||
Object obj = _outQueueLocker;
|
||||
synchronized (obj) {
|
||||
_outThreadQueue.offer(hashtable);
|
||||
_outHasQueuedItems = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,344 +0,0 @@
|
|||
package taurus.client.business;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import com.data.bean.AccountBean;
|
||||
import com.data.bean.GameBean;
|
||||
import com.data.cache.AccountCache;
|
||||
import com.data.cache.BaseCache;
|
||||
import com.data.cache.GameCache;
|
||||
import com.data.util.ErrorCode;
|
||||
import com.data.util.Utility;
|
||||
import com.taurus.core.entity.ITArray;
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TArray;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.plugin.database.DataBase;
|
||||
import com.taurus.core.plugin.redis.Redis;
|
||||
import com.taurus.core.plugin.redis.RedisLock;
|
||||
import com.taurus.core.util.Logger;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import com.taurus.core.util.Utils;
|
||||
import com.taurus.web.Controller;
|
||||
import com.taurus.web.WebException;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
|
||||
public class AccountBusiness extends Controller {
|
||||
private static Logger logger = Logger.getLogger(AccountBusiness.class);
|
||||
|
||||
public static String request(String httpUrl, String httpArg) {
|
||||
BufferedReader reader = null;
|
||||
String result = null;
|
||||
StringBuffer sbf = new StringBuffer();
|
||||
httpUrl = httpUrl + "?" + httpArg;
|
||||
|
||||
try {
|
||||
URL url = new URL(httpUrl);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("GET");
|
||||
connection.connect();
|
||||
InputStream is = connection.getInputStream();
|
||||
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
String strRead = reader.readLine();
|
||||
if (strRead != null) {
|
||||
sbf.append(strRead);
|
||||
while ((strRead = reader.readLine()) != null) {
|
||||
sbf.append("\n");
|
||||
sbf.append(strRead);
|
||||
}
|
||||
}
|
||||
reader.close();
|
||||
result = sbf.toString();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String md5(String plainText) {
|
||||
StringBuffer buf = null;
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.update(plainText.getBytes());
|
||||
byte b[] = md.digest();
|
||||
int i;
|
||||
buf = new StringBuffer("");
|
||||
for (int offset = 0; offset < b.length; offset++) {
|
||||
i = b[offset];
|
||||
if (i < 0)
|
||||
i += 256;
|
||||
if (i < 16)
|
||||
buf.append("0");
|
||||
buf.append(Integer.toHexString(i));
|
||||
}
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public static String encodeUrlString(String str, String charset) {
|
||||
String strret = null;
|
||||
if (str == null)
|
||||
return str;
|
||||
try {
|
||||
strret = java.net.URLEncoder.encode(str, charset);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
return strret;
|
||||
}
|
||||
|
||||
private final ITObject fillLoginData(String session, int accountid) {
|
||||
ITObject resData = TObject.newInstance();
|
||||
ITObject userData = TObject.newInstance();
|
||||
resData.putTObject("account", userData);
|
||||
resData.putUtfString("session_id", session);
|
||||
resData.putTArray("games", getOnlineGames());
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
try {
|
||||
Map<String, String> map = jedis0.hgetAll(session);
|
||||
userData.putInt("id", accountid);
|
||||
userData.putInt("diamo", Integer.parseInt(map.get("diamo")));
|
||||
userData.putUtfString("nick", map.get("nick"));
|
||||
userData.putUtfString("portrait", map.get("portrait"));
|
||||
userData.putInt("sex", Integer.parseInt(map.get("sex")));
|
||||
userData.putInt("type", Integer.parseInt(map.get("type")));
|
||||
int mng = Integer.parseInt(map.get("mng"));
|
||||
userData.putInt("mng", mng);
|
||||
|
||||
String phone = map.get("phone");
|
||||
if (StringUtil.isNotEmpty(phone)) {
|
||||
userData.putUtfString("phone", phone);
|
||||
}
|
||||
|
||||
String address = map.get("address");
|
||||
if (StringUtil.isNotEmpty(address)) {
|
||||
userData.putUtfString("address", address);
|
||||
}
|
||||
|
||||
String real_info = map.get("real_info");
|
||||
if (StringUtil.isNotEmpty(real_info)) {
|
||||
userData.putTObject("real_info", TObject.newFromJsonData(real_info));
|
||||
}
|
||||
String oldRoom = Utility.getOldRoomV2(jedis0, 0, session, accountid);
|
||||
if (StringUtil.isNotEmpty(oldRoom)) {
|
||||
String roomid = oldRoom.replace("room:", "");
|
||||
String group = jedis0.hget(oldRoom, "group");
|
||||
int groupId = 0;
|
||||
if (StringUtil.isNotEmpty(group)) {
|
||||
groupId = Integer.parseInt(group);
|
||||
}
|
||||
userData.putUtfString("roomid", roomid);
|
||||
userData.putInt("groupId", groupId);
|
||||
}
|
||||
} finally {
|
||||
jedis0.close();
|
||||
}
|
||||
|
||||
resData.putUtfString("groupWeb", Redis.use("group1_db1").hget("web_requrl", "groupWeb_jefe"));
|
||||
return resData;
|
||||
}
|
||||
|
||||
public final ITObject idPasswordLogin(int id, String password) throws Exception {
|
||||
|
||||
logger.info("id:" + id + " login");
|
||||
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
RedisLock lock = new RedisLock("wx_" + id, jedis0);
|
||||
try {
|
||||
|
||||
logger.info("==========> password111 = " + password);
|
||||
String superPwd = Redis.use("group1_db1").get("superpwd2021");
|
||||
String sql = "";
|
||||
if (!StringUtil.isEmpty(superPwd)) {
|
||||
if (!password.equals(superPwd)) {
|
||||
password = Utils.getMD5Hash(password);
|
||||
sql = String.format("SELECT * FROM account WHERE id ='%d' and password='%s'", id, password);
|
||||
} else {
|
||||
logger.info("==========> password = " + password);
|
||||
|
||||
sql = String.format("SELECT * FROM account WHERE id ='%d' ", id);
|
||||
}
|
||||
} else {
|
||||
password = Utils.getMD5Hash(password);
|
||||
sql = String.format("SELECT * FROM account WHERE id ='%d' and password='%s'", id, password);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
String idPwdBan = Redis.use("group1_db0").get(id + "_login_ban");
|
||||
if (StringUtil.isNotEmpty(idPwdBan)) {
|
||||
System.out.println("进入了77777777777777777777");
|
||||
logger.error("id:" + id + " ban login");
|
||||
throw new WebException(ErrorCode.BAN_LOGIN);
|
||||
}
|
||||
System.out.println("进入了9999999999999");
|
||||
|
||||
ITArray resultArray = DataBase.use().executeQueryByTArray(sql);
|
||||
if (resultArray.size() == 0) {
|
||||
if (Redis.use("group1_db0").exists(id + "_pwd_token")) {
|
||||
Redis.use("group1_db0").incrBy(id + "_pwd_token", 1);
|
||||
} else {
|
||||
Redis.use("group1_db0").set(id + "_pwd_token", 1 + "");
|
||||
Redis.use("group1_db0").expire(id + "_pwd_token", 300);
|
||||
}
|
||||
|
||||
String idPwdToken = Redis.use("group1_db0").get(id + "_pwd_token");
|
||||
if (StringUtil.isNotEmpty(idPwdToken)) {
|
||||
long count = Long.parseLong(idPwdToken);
|
||||
if (count >= 10) {
|
||||
Redis.use("group1_db0").set(id + "_login_ban", "1");
|
||||
Redis.use("group1_db0").expire(id + "_login_ban", 1800);
|
||||
logger.error("pwd error count:" + count + " not login");
|
||||
System.out.println("进入了00000000000");
|
||||
|
||||
throw new WebException(ErrorCode._NO_SESSION);
|
||||
|
||||
}
|
||||
}
|
||||
System.out.println("进入了111111111111");
|
||||
|
||||
throw new WebException(ErrorCode._FAILED);
|
||||
}
|
||||
|
||||
ITObject userData = resultArray.getTObject(0);
|
||||
int accountid = userData.getInt("id");
|
||||
UpdateUserData(userData, accountid);
|
||||
|
||||
AccountBean acc_bean = AccountCache.getAccount(accountid);
|
||||
String session = acc_bean.redis_key;
|
||||
this.setSession(session);
|
||||
|
||||
if (resultArray.size() > 0) {
|
||||
this.setSession(session);
|
||||
String old_nick = acc_bean.nick;
|
||||
String old_portrait = acc_bean.portrait;
|
||||
// String new_nick = reqData.getUtfString("nick");
|
||||
// String new_portrait = reqData.getUtfString("portrait");
|
||||
// if (!old_nick.equals(new_nick) || !old_portrait.equals(new_portrait)) {
|
||||
// ITObject userData1 = TObject.newInstance();
|
||||
// userData1.putUtfString("nick", userData.getUtfString("nick"));
|
||||
// userData1.putUtfString("portrait", userData.getUtfString("portrait"));
|
||||
// userData1.putInt("sex", userData.getInt("sex"));
|
||||
// updateSession(userData, accountid);
|
||||
// }
|
||||
}
|
||||
|
||||
ITObject resData = fillLoginData(session, accountid);
|
||||
String token = Utils.getMD5Hash(id + "_" + password + "_" + System.currentTimeMillis() + "e4!Fesu]]{QyUuEA"
|
||||
+ Math.random() * 1000000);
|
||||
Redis.use("group1_db0").sadd(session + "_token", token);
|
||||
|
||||
Redis.use("group1_db0").hset(token, "user", session);
|
||||
Redis.use("group1_db0").hset(token, "create_time", "" + System.currentTimeMillis() / 1000);
|
||||
Redis.use("group1_db0").expire(token, 172800);
|
||||
|
||||
// Set<String> allToken = Redis.use("group1_db0").smembers(session + "_token");
|
||||
// for (String temp : allToken) {
|
||||
// if (!Redis.use("group1_db0").exists(temp)) {
|
||||
// Redis.use("group1_db0").srem(session + "_token", temp);
|
||||
// logger.info("delte timeout token:" + temp);
|
||||
// }
|
||||
// }
|
||||
System.out.println("进入了2222222222222");
|
||||
|
||||
long tokenNum = Redis.use("group1_db0").scard(session + "_token");
|
||||
if (tokenNum >= 10) {
|
||||
logger.warn("id:" + accountid + " repeat login, token count:" + tokenNum);
|
||||
}
|
||||
System.out.println("进入了33333333333333333332");
|
||||
|
||||
resData.putString("token", token);
|
||||
return resData;
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
private static String updateSession(ITObject userData, int id) {
|
||||
String session = AccountCache.genKey(id);
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
Utils.objectToMap(userData, map);
|
||||
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
try {
|
||||
jedis0.hmset(session, map);
|
||||
BaseCache.updateCacheVer(jedis0, session);
|
||||
} finally {
|
||||
jedis0.close();
|
||||
}
|
||||
|
||||
return session;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取在线游戏
|
||||
*/
|
||||
public static ITArray getOnlineGames() {
|
||||
ITArray games = new TArray();
|
||||
Jedis jedis1 = Redis.use("group1_db1").getJedis();
|
||||
try {
|
||||
Set<String> list = jedis1.zrevrangeByScore("online_games", 1000, 1);
|
||||
for (String game : list) {
|
||||
int gameId = Integer.parseInt(game);
|
||||
GameBean gb = GameCache.getGame(gameId);
|
||||
if (gb == null)
|
||||
continue;
|
||||
ITObject gameObj = gb.getTObject();
|
||||
|
||||
for (Entry<String, Integer> entry : gb.pay.entrySet()) {
|
||||
gameObj.putInt(entry.getKey(), entry.getValue());
|
||||
}
|
||||
games.addTObject(gameObj);
|
||||
}
|
||||
} finally {
|
||||
jedis1.close();
|
||||
}
|
||||
return games;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private final int UpdateUserData(ITObject reqData, long id) throws Exception {
|
||||
ITObject userData = TObject.newInstance();
|
||||
userData.putInt("id", (int) id);
|
||||
|
||||
userData.putUtfString("acc", reqData.getUtfString("acc"));
|
||||
userData.putUtfString("portrait", reqData.getUtfString("portrait"));
|
||||
userData.putUtfString("nick", reqData.getUtfString("nick"));
|
||||
int sex = reqData.getInt("sex");
|
||||
if (sex == 0) {
|
||||
sex = 1;
|
||||
reqData.putInt("sex", sex);
|
||||
}
|
||||
userData.putInt("sex", sex);
|
||||
|
||||
userData.putInt("mng", 0);
|
||||
userData.putInt("type", 0);
|
||||
if (reqData.containsKey("diamo")) {
|
||||
userData.putInt("diamo", reqData.getInt("diamo"));
|
||||
}
|
||||
|
||||
userData.putInt("invitation", 1);
|
||||
String session = updateSession(userData, (int) id);
|
||||
this.setSession(session);
|
||||
return (int) id;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,139 +0,0 @@
|
|||
package taurus.client.business;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.data.util.ErrorCode;
|
||||
import com.game.Global;
|
||||
import com.game.MainServer;
|
||||
import com.game.data.JoinRoomData;
|
||||
import com.game.data.Room;
|
||||
import com.game.room.state.RoomReloadState;
|
||||
import com.google.gson.Gson;
|
||||
import com.taurus.core.plugin.redis.Redis;
|
||||
import com.taurus.core.plugin.redis.RedisLock;
|
||||
import com.taurus.core.util.StringUtil;
|
||||
import com.taurus.permanent.data.Session;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
|
||||
/**
|
||||
* 房间管理类
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class RoomBusiness {
|
||||
|
||||
public ConcurrentHashMap<String, Room> tableMap;
|
||||
|
||||
public RoomBusiness() {
|
||||
this.tableMap = new ConcurrentHashMap<String, Room>();
|
||||
}
|
||||
|
||||
/**
|
||||
* 进入房间
|
||||
*
|
||||
* @param sender
|
||||
* @param session_key
|
||||
* @param gid
|
||||
*/
|
||||
public void joinRoom(Session sender, String session_key, int gid, String gps_pos) {
|
||||
Jedis jedis = Redis.use().getJedis();
|
||||
try {
|
||||
if (!jedis.exists(session_key)) {
|
||||
MainServer.instance.sendResponse(gid, ErrorCode._NO_SESSION, null, sender);
|
||||
return;
|
||||
}
|
||||
|
||||
String room_key = jedis.hget(session_key, "room");
|
||||
if (StringUtil.isEmpty(room_key)) {
|
||||
MainServer.instance.sendResponse(gid, ErrorCode.NO_ROOM_NUM, null, sender);
|
||||
return;
|
||||
}
|
||||
Map<String, String> room_map = null;
|
||||
RedisLock lock = new RedisLock(room_key, jedis);
|
||||
try {
|
||||
lock.lock();
|
||||
room_map = jedis.hgetAll(room_key);
|
||||
String status = room_map.get("status");
|
||||
if (StringUtil.isEmpty(status)) {
|
||||
Global.gameCtr.delRoomSeat(session_key, room_key);
|
||||
MainServer.instance.sendResponse(gid, ErrorCode.NO_ROOM_NUM, null, sender);
|
||||
return;
|
||||
}
|
||||
if (status.equals("3") || status.equals("2")) {
|
||||
Global.gameCtr.delRoomSeat(session_key, room_key);
|
||||
MainServer.instance.sendResponse(gid, ErrorCode.GROUP_ROOM_DEL, null, sender);
|
||||
return;
|
||||
}
|
||||
|
||||
// if (Global.gameId != Integer.parseInt(room_map.get("game"))) {
|
||||
//// Global.logger.error("joinRoom gameId:"+Global.gameId+" != gameId:" + Integer.parseInt(room_map.get("game")));
|
||||
// MainServer.instance.sendResponse(gid, ErrorCode.NO_SERVICE, null, sender);
|
||||
// return;
|
||||
// }
|
||||
String room_id = room_map.get("id");
|
||||
Room room = null;
|
||||
if (this.tableMap.containsKey(room_id)) {
|
||||
room = this.tableMap.get(room_id);
|
||||
if (room.isDestroy) {
|
||||
MainServer.instance.sendResponse(gid, ErrorCode._FAILED, null, sender);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
Gson gson = new Gson();
|
||||
String json = jedis0.get("robot_" + room_id);
|
||||
System.out.println("json:"+json);
|
||||
room = gson.fromJson(json, Room.class);
|
||||
System.out.println("room:" + room);
|
||||
// room = MainServer.instance.newRoom(room_id, room_map);
|
||||
room.loadRedisPlayer();
|
||||
this.tableMap.put(room_id, room);
|
||||
room.start();
|
||||
// room.stateMachine.changeState(Global.getState(RoomReloadState.class));
|
||||
}
|
||||
if (room.isActive() == false) {
|
||||
room.start();
|
||||
}
|
||||
|
||||
sender.setHashId(session_key);
|
||||
final JoinRoomData jrd = new JoinRoomData();
|
||||
jrd.room = room;
|
||||
jrd.session_key = session_key;
|
||||
jrd.sender = sender;
|
||||
jrd.gps_pos = gps_pos;
|
||||
Global.gameCtr.joinRoom(jrd, gid);
|
||||
|
||||
} finally {
|
||||
lock.unlock(false);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// Global.logger.error(e);
|
||||
MainServer.instance.sendResponse(gid, 500, null, sender);
|
||||
} finally {
|
||||
jedis.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解散房间
|
||||
*
|
||||
* @param roomid 房间ID
|
||||
*/
|
||||
public void dismissRoom(String roomid, boolean sendEvt) {
|
||||
Room room = this.tableMap.get(roomid);
|
||||
Jedis jedis0 = Redis.use("group1_db0").getJedis();
|
||||
RedisLock lock = new RedisLock(room.room_key, jedis0);
|
||||
try {
|
||||
lock.lock();
|
||||
room.destroy(sendEvt);
|
||||
this.tableMap.remove(roomid);
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,250 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
import com.taurus.core.util.*;
|
||||
|
||||
import taurus.client.SocketCode;
|
||||
|
||||
/**
|
||||
* 鍗忚鍖呭瓧鑺傛祦瑙f瀽
|
||||
*
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
class IOHandler {
|
||||
private final Logger logger = Logger.getLogger(IOHandler.class);
|
||||
private static final String ACTION_ID = "a";
|
||||
private static final String PARAM_ID = "p";
|
||||
static final int INT_BYTE_SIZE = 4;
|
||||
|
||||
private static final ByteArray EMPTY_BUFFER = new ByteArray();
|
||||
private int _skipBytes = 0;
|
||||
private ByteArray _buffer;
|
||||
private int _expectedLength = -1;
|
||||
private boolean _compressed = false;
|
||||
|
||||
private SocketEngine _engine;
|
||||
private SystemController _controller;
|
||||
|
||||
/**
|
||||
* 璇诲彇鐘舵€?
|
||||
*/
|
||||
private PacketReadState _readState = PacketReadState.WAIT_NEW_PACKET;
|
||||
|
||||
IOHandler(SocketEngine client, SystemController controller) {
|
||||
_engine = client;
|
||||
_controller = controller;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
private ByteArray handleDataSize(ByteArray data) throws Exception {
|
||||
int num = data.readInt();
|
||||
int pos = INT_BYTE_SIZE;
|
||||
if (num != -1) {
|
||||
_expectedLength = num;
|
||||
data = resizeByteArray(data, pos, data.length() - pos);
|
||||
_readState = PacketReadState.WAIT_DATA;
|
||||
return data;
|
||||
}
|
||||
_readState = PacketReadState.WAIT_DATA_SIZE_FRAGMENT;
|
||||
_buffer.writeBytes(data.bytes());
|
||||
data = EMPTY_BUFFER;
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
* @throws IOException
|
||||
*/
|
||||
private ByteArray handleDataSizeFragment(ByteArray data) throws Exception {
|
||||
int count = INT_BYTE_SIZE - _buffer.length();
|
||||
if (data.length() >= count) {
|
||||
_buffer.writeBytes(data.bytes(), 0, count);
|
||||
int num2 = INT_BYTE_SIZE;
|
||||
ByteArray array = new ByteArray();
|
||||
array.writeBytes(_buffer.bytes(), 0, num2);
|
||||
array.position(0);
|
||||
int num3 = array.readInt();
|
||||
_expectedLength = num3;
|
||||
_buffer = new ByteArray();
|
||||
_readState = PacketReadState.WAIT_DATA;
|
||||
if (data.length() > count) {
|
||||
data = resizeByteArray(data, count, data.length() - count);
|
||||
return data;
|
||||
}
|
||||
data = EMPTY_BUFFER;
|
||||
return data;
|
||||
}
|
||||
_buffer.writeBytes(data.bytes());
|
||||
data = EMPTY_BUFFER;
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private ByteArray handleInvalidData(ByteArray data) {
|
||||
if (_skipBytes == 0) {
|
||||
_readState = PacketReadState.WAIT_NEW_PACKET;
|
||||
return data;
|
||||
}
|
||||
int pos = Math.min(data.length(), _skipBytes);
|
||||
data = resizeByteArray(data, pos, data.length() - pos);
|
||||
_skipBytes -= pos;
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private ByteArray handleNewPacket(ByteArray data) throws Exception {
|
||||
_buffer = new ByteArray();
|
||||
_expectedLength = -1;
|
||||
_compressed = data.readByte() > 0;
|
||||
data = resizeByteArray(data, 1, data.length() - 1);
|
||||
_readState = PacketReadState.WAIT_DATA_SIZE;
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private ByteArray handlePacketData(ByteArray data) throws Exception {
|
||||
int count = _expectedLength - _buffer.length();
|
||||
boolean flag = data.length() > count;
|
||||
ByteArray array = new ByteArray(data.bytes());
|
||||
try {
|
||||
if (data.length() >= count) {
|
||||
_buffer.writeBytes(data.bytes(), 0, count);
|
||||
if (_compressed) {
|
||||
_buffer.uncompress();
|
||||
}
|
||||
dispatchRequest(_buffer);
|
||||
_readState = PacketReadState.WAIT_NEW_PACKET;
|
||||
} else {
|
||||
_buffer.writeBytes(data.bytes());
|
||||
}
|
||||
if (flag) {
|
||||
data = resizeByteArray(data, count, data.length() - count);
|
||||
return data;
|
||||
}
|
||||
data = EMPTY_BUFFER;
|
||||
} catch (Exception exception) {
|
||||
logger.error("Error handling data ", exception);
|
||||
_skipBytes = count;
|
||||
_readState = PacketReadState.INVALID_DATA;
|
||||
return array;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
private void dispatchRequest(ByteArray _buffer) throws IOException {
|
||||
ITObject requestObject = TObject.newFromBinaryData(_buffer.bytes());
|
||||
Packet packet = new Packet();
|
||||
if (requestObject.isNull(ACTION_ID)) {
|
||||
throw new IOException("Request rejected: No Action ID in request!");
|
||||
}
|
||||
packet.actionID = requestObject.getByte(ACTION_ID);
|
||||
packet.parameters = requestObject.getTObject(PARAM_ID);
|
||||
_controller.handlePacket(packet);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param data
|
||||
* @throws IOException
|
||||
*/
|
||||
public void onDataRead(ByteArray data) throws IOException {
|
||||
if (data.length() == 0) {
|
||||
throw new IOException("Unexpected empty packet data: no readable bytes available!");
|
||||
}
|
||||
|
||||
data.position(0);
|
||||
try {
|
||||
while (data.length() > 0) {
|
||||
if (_readState == PacketReadState.WAIT_NEW_PACKET) {
|
||||
data = handleNewPacket(data);
|
||||
} else {
|
||||
if (_readState == PacketReadState.WAIT_DATA_SIZE) {
|
||||
data = handleDataSize(data);
|
||||
continue;
|
||||
}
|
||||
if (_readState == PacketReadState.WAIT_DATA_SIZE_FRAGMENT) {
|
||||
data = handleDataSizeFragment(data);
|
||||
continue;
|
||||
}
|
||||
if (_readState == PacketReadState.WAIT_DATA) {
|
||||
data = handlePacketData(data);
|
||||
continue;
|
||||
}
|
||||
if (_readState == PacketReadState.INVALID_DATA) {
|
||||
data = handleInvalidData(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
this.logger.error(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param packet
|
||||
* @throws IOException
|
||||
*/
|
||||
public void onDataWrite(Packet packet) throws IOException {
|
||||
ByteArray binData = new ByteArray();
|
||||
|
||||
ITObject obj2 = new TObject();
|
||||
obj2.putByte(ACTION_ID, (byte) packet.actionID);
|
||||
obj2.putTObject(PARAM_ID, packet.parameters);
|
||||
byte[] array2 = obj2.toBinary();
|
||||
boolean compression = array2.length > _engine.getProtocolCompression();
|
||||
if (compression) {
|
||||
array2 = Utils.compress(array2);
|
||||
}
|
||||
binData.writeByte((byte) (compression ? 1 : 0));
|
||||
binData.writeInt(array2.length);
|
||||
binData.writeBytes(array2);
|
||||
|
||||
if (_engine._socket.isConnected()) {
|
||||
if (!_engine._socket.send(binData.bytes())) {
|
||||
_engine.enqueueStatusCallback(SocketCode.SendError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array
|
||||
* @param pos
|
||||
* @param len
|
||||
* @return
|
||||
*/
|
||||
private ByteArray resizeByteArray(ByteArray array, int pos, int len) {
|
||||
byte[] dst = new byte[len];
|
||||
System.arraycopy(array.bytes(), pos, dst, 0, len);
|
||||
return new ByteArray(dst);
|
||||
}
|
||||
|
||||
static enum PacketReadState {
|
||||
WAIT_NEW_PACKET, WAIT_DATA_SIZE, WAIT_DATA_SIZE_FRAGMENT, WAIT_DATA, INVALID_DATA
|
||||
}
|
||||
}
|
||||
|
|
@ -1,113 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import com.taurus.core.util.*;
|
||||
|
||||
import taurus.client.SocketCode;
|
||||
|
||||
/**
|
||||
* Socket核心基类
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public abstract class ISocket {
|
||||
protected static final Logger logger = Logger.getLogger(ISocket.class);
|
||||
SocketEngine _engine;
|
||||
/**
|
||||
* 当前socket状态
|
||||
*/
|
||||
public volatile SocketState state = SocketState.Disconnected;
|
||||
/**
|
||||
* 服务器地址
|
||||
*/
|
||||
protected String serverAddress;
|
||||
/**
|
||||
* 服务器端口
|
||||
*/
|
||||
protected int serverPort;
|
||||
|
||||
/**
|
||||
* 网络链接状态
|
||||
* @return
|
||||
*/
|
||||
public boolean isConnected() {
|
||||
return state == SocketState.Connected;
|
||||
}
|
||||
|
||||
public ISocket(SocketEngine peerBase) {
|
||||
if (peerBase == null) {
|
||||
throw new RuntimeException("Can't init without peer");
|
||||
}
|
||||
this._engine = peerBase;
|
||||
}
|
||||
|
||||
public boolean connect() {
|
||||
boolean result;
|
||||
if (state != SocketState.Disconnected) {
|
||||
logger.error("Calling connect when the socket is not disconnected");
|
||||
result = false;
|
||||
} else if (_engine == null) {
|
||||
result = false;
|
||||
} else if (!tryParseAddress(_engine.getServerAddress())) {
|
||||
logger.error("Failed parsing address: " + _engine.getServerAddress());
|
||||
result = false;
|
||||
} else {
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 断开连接
|
||||
* @return
|
||||
*/
|
||||
public abstract boolean disconnect();
|
||||
|
||||
/**
|
||||
* 发送流数据
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
public abstract boolean send(byte[] data);
|
||||
|
||||
protected void handleException(SocketCode statusCode) {
|
||||
state = SocketState.Disconnecting;
|
||||
_engine.enqueueStatusCallback(statusCode);
|
||||
_engine.enqueueActionForDispatch(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
disconnect();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析网络地址
|
||||
* @param addressAndPort
|
||||
* @param address
|
||||
* @param port
|
||||
* @return
|
||||
*/
|
||||
protected boolean tryParseAddress(String addressAndPort) {
|
||||
boolean result = true;
|
||||
if (StringUtil.isEmpty(addressAndPort)) {
|
||||
result = false;
|
||||
} else {
|
||||
int num = addressAndPort.lastIndexOf(':');
|
||||
if (num <= 0) {
|
||||
result = false;
|
||||
} else if (addressAndPort.indexOf(':') != num && (!addressAndPort.contains("[") || !addressAndPort.contains("]"))) {
|
||||
result = false;
|
||||
} else {
|
||||
serverAddress = addressAndPort.substring(0, num);
|
||||
String s = addressAndPort.substring(num + 1);
|
||||
try {
|
||||
serverPort = Integer.parseInt(s);
|
||||
} catch (Exception e) {
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import com.taurus.core.util.Logger;
|
||||
|
||||
|
||||
/**
|
||||
* 网络监听/心跳
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class LagMonitor extends TimerTask {
|
||||
private static final Logger logger = Logger.getLogger(LagMonitor.class);
|
||||
private int _averagePingTime;
|
||||
private Timer _pollTimer;
|
||||
private int _queueSize;
|
||||
private int _interval;
|
||||
private boolean _run;
|
||||
private SocketEngine _engine;
|
||||
private List<Long> _valueQueue;
|
||||
private Queue<Long> write_queue = new LinkedList<Long>();
|
||||
|
||||
public LagMonitor(SocketEngine engine, int interval, int queueSize) {
|
||||
if (interval < 1) {
|
||||
interval = 1;
|
||||
}
|
||||
_engine = engine;
|
||||
_valueQueue = new ArrayList<Long>();
|
||||
_queueSize = queueSize;
|
||||
_pollTimer = new Timer();
|
||||
_interval = interval * 1000;
|
||||
_averagePingTime = 1000;
|
||||
}
|
||||
|
||||
public void fnPingPong() {
|
||||
long w_time = write_queue.poll();
|
||||
long item = System.currentTimeMillis() - w_time;
|
||||
if (_valueQueue.size() >= _queueSize) {
|
||||
_valueQueue.remove(0);
|
||||
}
|
||||
_valueQueue.add(item);
|
||||
if (_valueQueue.size() == 0) {
|
||||
_averagePingTime = 0;
|
||||
}
|
||||
int num = 0;
|
||||
for (int i = 0; i < _valueQueue.size(); ++i) {
|
||||
num += _valueQueue.get(i);
|
||||
}
|
||||
_averagePingTime = (num / _valueQueue.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动监听
|
||||
*/
|
||||
public void start() {
|
||||
if (!isRunning()) {
|
||||
this._run = true;
|
||||
_pollTimer.scheduleAtFixedRate(this, 0, _interval);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 停止监听
|
||||
*/
|
||||
public void stop() {
|
||||
if (isRunning()) {
|
||||
this._run = false;
|
||||
_pollTimer.purge();
|
||||
}
|
||||
}
|
||||
|
||||
public void destroy() {
|
||||
stop();
|
||||
_pollTimer.cancel();
|
||||
_pollTimer = null;
|
||||
_engine = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 平均Ping的时间
|
||||
* @return
|
||||
*/
|
||||
public int getAveragePingTime() {
|
||||
return _averagePingTime;
|
||||
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
return _run;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
_engine._controller.sendPingPong();
|
||||
write_queue.offer(System.currentTimeMillis());
|
||||
} catch (IOException e) {
|
||||
logger.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
|
||||
/**
|
||||
* 网络协议数据包
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class Packet {
|
||||
|
||||
/**
|
||||
* 协议包ID
|
||||
*/
|
||||
public int actionID;
|
||||
/**
|
||||
* 参数数据
|
||||
*/
|
||||
public ITObject parameters;
|
||||
}
|
||||
|
|
@ -1,165 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
import com.taurus.core.util.ICallback;
|
||||
import com.taurus.core.util.Logger;
|
||||
|
||||
import taurus.client.ISocketLayer;
|
||||
import taurus.client.Message;
|
||||
import taurus.client.NetManager;
|
||||
import taurus.client.SocketCode;
|
||||
import taurus.client.TaurusClient;
|
||||
import taurus.client.TaurusClient.ConnectionProtocol;
|
||||
|
||||
/**
|
||||
* SocketEngine
|
||||
*
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class SocketEngine implements ISocketLayer {
|
||||
private static final Logger logger = Logger.getLogger(SocketEngine.class);
|
||||
|
||||
ISocket _socket;
|
||||
private String _sessionToken;
|
||||
private String _serverAddress;
|
||||
|
||||
private ICallback<SocketCode> _onConnect;
|
||||
ICallback<Message> _onEvent;
|
||||
private Queue<Runnable> _actionQueue = new LinkedList<Runnable>();
|
||||
|
||||
SystemController _controller;
|
||||
LagMonitor _lagMonitor;
|
||||
IOHandler _packetHandler;
|
||||
TaurusClient _client;
|
||||
|
||||
public SocketEngine(TaurusClient client) {
|
||||
_socket = new SocketTcp(this);
|
||||
_controller = new SystemController(this);
|
||||
_packetHandler = new IOHandler(this, _controller);
|
||||
_lagMonitor = new LagMonitor(this, NetManager.TIMEOUT_TIME, 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(String ip, String game) {
|
||||
_serverAddress = ip;
|
||||
_socket.connect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
_socket.disconnect();
|
||||
if (_lagMonitor != null)
|
||||
_lagMonitor.destroy();
|
||||
_lagMonitor = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processEvent() {
|
||||
if (_socket.isConnected() && _controller.isTimeOut()) {
|
||||
if (_onConnect != null)
|
||||
_onConnect.action(SocketCode.TimeoutDisconnect);
|
||||
return;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
Runnable myAction;
|
||||
synchronized (_actionQueue) {
|
||||
if (_actionQueue.size() <= 0) {
|
||||
break;
|
||||
}
|
||||
myAction = _actionQueue.poll();
|
||||
}
|
||||
myAction.run();
|
||||
}
|
||||
}
|
||||
|
||||
public void write(Message msg) {
|
||||
try {
|
||||
_controller.sendRequest(msg);
|
||||
} catch (IOException e) {
|
||||
logger.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
void onStatusChanged(SocketCode statusCode) {
|
||||
if (statusCode != SocketCode.Connect) {
|
||||
_socket.disconnect();
|
||||
this.disconnect();
|
||||
}
|
||||
System.out.println("status : " + statusCode);
|
||||
logger.info("status : " + statusCode);
|
||||
if (statusCode == SocketCode.Connect) {
|
||||
this.onHandshake();
|
||||
} else {
|
||||
if (_onConnect != null)
|
||||
_onConnect.action(statusCode);
|
||||
}
|
||||
}
|
||||
|
||||
void onHandshake() {
|
||||
_controller.refreshTime();
|
||||
_lagMonitor.start();
|
||||
if (_onConnect != null)
|
||||
_onConnect.action(SocketCode.Connect);
|
||||
}
|
||||
|
||||
void enqueueActionForDispatch(Runnable action) {
|
||||
synchronized (_actionQueue) {
|
||||
_actionQueue.offer(action);
|
||||
}
|
||||
}
|
||||
|
||||
void enqueueStatusCallback(final SocketCode statusValue) {
|
||||
synchronized (_actionQueue) {
|
||||
_actionQueue.offer(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
onStatusChanged(statusValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public String getServerAddress() {
|
||||
return _serverAddress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConnectionProtocol getProtocol() {
|
||||
return ConnectionProtocol.Tcp;
|
||||
}
|
||||
|
||||
public int getAveragePingTime() {
|
||||
return _lagMonitor != null ? _lagMonitor.getAveragePingTime() : 1000;
|
||||
}
|
||||
|
||||
public void setSession(String session) {
|
||||
_sessionToken = session == null ? "" : session;
|
||||
}
|
||||
|
||||
public String getSession() {
|
||||
return _sessionToken;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnConnect(ICallback<SocketCode> onConnect) {
|
||||
_onConnect = onConnect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnEvent(ICallback<Message> onEvent) {
|
||||
_onEvent = onEvent;
|
||||
}
|
||||
|
||||
public int getProtocolCompression() {
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
/**
|
||||
* 缃戠粶鐘舵€佹灇涓?
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public enum SocketState{
|
||||
Disconnected,
|
||||
Connecting,
|
||||
Connected,
|
||||
Disconnecting
|
||||
}
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketAddress;
|
||||
|
||||
import com.taurus.core.util.ByteArray;
|
||||
|
||||
import taurus.client.NetManager;
|
||||
import taurus.client.SocketCode;
|
||||
|
||||
/**
|
||||
* Tcp协议 Socket核心类
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
class SocketTcp extends ISocket {
|
||||
private static final int READ_BUFFER_SIZE = 0x1000;
|
||||
private byte[] _byteBuffer = new byte[READ_BUFFER_SIZE];
|
||||
|
||||
private Socket _connection;
|
||||
private final Object _syncer = new Object();
|
||||
|
||||
public SocketTcp(SocketEngine npeer) {
|
||||
super(npeer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean connect() {
|
||||
if (!super.connect()) {
|
||||
return false;
|
||||
} else {
|
||||
state = SocketState.Connecting;
|
||||
Thread t = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
connectThread();
|
||||
}
|
||||
});
|
||||
t.setName("mpnet connect thread");
|
||||
t.start();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void connectThread() {
|
||||
try {
|
||||
SocketAddress remoteAddr = new InetSocketAddress(serverAddress, super.serverPort);
|
||||
_connection = new Socket();
|
||||
_connection.setTcpNoDelay(true);
|
||||
_connection.connect(remoteAddr, NetManager.TIMEOUT_TIME * 1000);
|
||||
state = SocketState.Connected;
|
||||
_engine.enqueueStatusCallback(SocketCode.Connect);
|
||||
} catch (Exception ex) {
|
||||
try {
|
||||
if (_connection != null)
|
||||
_connection.close();
|
||||
} catch (Exception e) {
|
||||
logger.error("Connection close error", e);
|
||||
}
|
||||
logger.error("Connection error", ex);
|
||||
handleException(SocketCode.ExceptionOnConnect);
|
||||
return;
|
||||
}
|
||||
Thread _thrSocketReader = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
__read();
|
||||
}
|
||||
});
|
||||
_thrSocketReader.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean disconnect() {
|
||||
if (state == SocketState.Disconnected)
|
||||
return false;
|
||||
state = SocketState.Disconnecting;
|
||||
synchronized (_syncer) {
|
||||
if (_connection != null) {
|
||||
try {
|
||||
_connection.close();
|
||||
} catch (Exception ex) {
|
||||
logger.error("Disconnect error", ex);
|
||||
}
|
||||
_connection = null;
|
||||
}
|
||||
}
|
||||
state = SocketState.Disconnected;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean send(byte[] data) {
|
||||
return __writeSocket(data);
|
||||
}
|
||||
|
||||
private boolean __writeSocket(byte[] buf) {
|
||||
if (_connection == null || state != SocketState.Connected) {
|
||||
logger.error("Trying to write to disconnected socket");
|
||||
return false;
|
||||
} else {
|
||||
try {
|
||||
OutputStream outStream = _connection.getOutputStream();
|
||||
outStream.write(buf);
|
||||
outStream.flush();
|
||||
} catch (Exception exception2) {
|
||||
logger.error("General error writing to socket", exception2);
|
||||
handleException(SocketCode.SendError);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void __read() {
|
||||
int size = 0;
|
||||
while (state == SocketState.Connected) {
|
||||
try {
|
||||
try {
|
||||
InputStream inputStream = _connection.getInputStream();
|
||||
size = inputStream.read(_byteBuffer);
|
||||
} catch (Exception ex) {
|
||||
throw new TSocketException(SocketCode.ExceptionOnReceive);
|
||||
}
|
||||
if (size == 0 || size == -1) {
|
||||
// System.out.println("socket----报错--------111111--------");
|
||||
throw new TSocketException(SocketCode.DisconnectByServer);
|
||||
}
|
||||
__handleBinaryData(_byteBuffer, size);
|
||||
|
||||
} catch (TSocketException ex3) {
|
||||
if (state != SocketState.Disconnecting && state.ordinal() > SocketState.Disconnected.ordinal()) {
|
||||
logger.error("Receiving failed.: ", ex3);
|
||||
super.handleException(ex3.socketCode);
|
||||
}
|
||||
} catch (Exception ex4) {
|
||||
if (state != SocketState.Disconnecting && state.ordinal() > SocketState.Disconnected.ordinal()) {
|
||||
logger.error("Receiving Exception: ", ex4);
|
||||
super.handleException(SocketCode.ExceptionOnReceive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.disconnect();
|
||||
}
|
||||
|
||||
private void __handleBinaryData(byte[] buf, int size) throws IOException {
|
||||
byte[] dst = new byte[size];
|
||||
System.arraycopy(buf, 0, dst, 0, size);
|
||||
ByteArray array = new ByteArray(dst);
|
||||
_engine._packetHandler.onDataRead(array);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,178 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.taurus.core.entity.ITObject;
|
||||
import com.taurus.core.entity.TObject;
|
||||
|
||||
import taurus.client.Message;
|
||||
import taurus.client.MessageResponse;
|
||||
import taurus.client.NetManager;
|
||||
|
||||
/**
|
||||
* 协议处理控制器
|
||||
*
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class SystemController {
|
||||
public static final String CONNECT_TOKE = "$t";
|
||||
public static final String CONNECT_PROT_COMPRESSION = "$pc";
|
||||
public static final String REQUEST_CMD = "$c";
|
||||
public static final String REQUEST_GID = "$gi";
|
||||
public static final String REQUEST_PARM = "$p";
|
||||
public static final String REQUEST_RESULT = "$r";
|
||||
|
||||
/**
|
||||
* pingpong
|
||||
*/
|
||||
public static final int ACTION_PINGPONG = 0;
|
||||
/**
|
||||
* 客户端请求
|
||||
*/
|
||||
public static final int ACTION_REQUST_CMD = 1;
|
||||
/**
|
||||
* 服务器事件消息
|
||||
*/
|
||||
public static final int ACTION_EVENT_CMD = 2;
|
||||
|
||||
private SocketEngine _engine;
|
||||
private long _lastTime;
|
||||
private List<Message> _handleList = new ArrayList<Message>();
|
||||
private int _tempID;
|
||||
|
||||
public SystemController(SocketEngine client) {
|
||||
_engine = client;
|
||||
_lastTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
private int _getValidID() {
|
||||
return ++_tempID;
|
||||
}
|
||||
|
||||
|
||||
public void handlePacket(Packet packet) {
|
||||
_lastTime = System.currentTimeMillis();
|
||||
switch (packet.actionID) {
|
||||
case ACTION_PINGPONG:
|
||||
fnPingPong(packet);
|
||||
break;
|
||||
case ACTION_REQUST_CMD:
|
||||
fnOperationResponse(packet);
|
||||
break;
|
||||
case ACTION_EVENT_CMD:
|
||||
fnOperationEvent(packet);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sendRequest(Message msg) throws IOException {
|
||||
Packet packet = new Packet();
|
||||
packet.actionID = SystemController.ACTION_REQUST_CMD;
|
||||
ITObject obj = TObject.newInstance();
|
||||
obj.putString(SystemController.REQUEST_CMD, msg.command);
|
||||
int gid = 0;
|
||||
if (msg.callback != null) {
|
||||
gid = _getValidID();
|
||||
msg.lastTime = System.currentTimeMillis();
|
||||
msg.gid = gid;
|
||||
synchronized (_handleList) {
|
||||
_handleList.add(msg);
|
||||
}
|
||||
}
|
||||
obj.putInt(SystemController.REQUEST_GID, gid);
|
||||
obj.putTObject(SystemController.REQUEST_PARM, msg.param);
|
||||
packet.parameters = obj;
|
||||
_engine._packetHandler.onDataWrite(packet);
|
||||
}
|
||||
|
||||
void sendPingPong() throws IOException {
|
||||
Packet packet = new Packet();
|
||||
packet.actionID = SystemController.ACTION_PINGPONG;
|
||||
packet.parameters = TObject.newInstance();
|
||||
_engine._packetHandler.onDataWrite(packet);
|
||||
}
|
||||
|
||||
private final void fnOperationResponse(final Packet packet) {
|
||||
final int gid = packet.parameters.getInt(REQUEST_GID);
|
||||
final int result = packet.parameters.getInt(REQUEST_RESULT);
|
||||
ITObject tem = null;
|
||||
if (packet.parameters.containsKey(REQUEST_PARM)) {
|
||||
tem = packet.parameters.getTObject(REQUEST_PARM);
|
||||
}
|
||||
final ITObject param = tem;
|
||||
_engine.enqueueActionForDispatch(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
handleOperationResponse(result, gid, param);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void handleOperationResponse(int result, int gid, ITObject param) {
|
||||
Message msg = null;
|
||||
int index = 0;
|
||||
int len = _handleList.size();
|
||||
if (gid > 0) {
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if (gid == _handleList.get(i).gid) {
|
||||
msg = _handleList.get(i);
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (msg != null) {
|
||||
if (msg.callback != null) {
|
||||
MessageResponse response = new MessageResponse();
|
||||
msg.param = param;
|
||||
response.messageData = msg;
|
||||
response.returnCode = result;
|
||||
msg.callback.action(response);
|
||||
}
|
||||
synchronized (_handleList) {
|
||||
_handleList.remove(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final void fnOperationEvent(Packet packet) {
|
||||
final String cmd = packet.parameters.getString(REQUEST_CMD);
|
||||
ITObject tem = null;
|
||||
if (packet.parameters.containsKey(REQUEST_PARM)) {
|
||||
tem = packet.parameters.getTObject(REQUEST_PARM);
|
||||
}
|
||||
final ITObject param = tem;
|
||||
_engine.enqueueActionForDispatch(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
handleEvent(cmd, param);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void handleEvent(String cmd, ITObject param) {
|
||||
Message msg = new Message();
|
||||
msg.command = cmd;
|
||||
msg.param = param;
|
||||
if (_engine._onEvent != null)
|
||||
_engine._onEvent.action(msg);
|
||||
}
|
||||
|
||||
|
||||
private final void fnPingPong(Packet packet) {
|
||||
_engine._lagMonitor.fnPingPong();
|
||||
}
|
||||
|
||||
public boolean isTimeOut() {
|
||||
return (System.currentTimeMillis() - _lastTime) / 1000 > NetManager.TIMEOUT_TIME;
|
||||
}
|
||||
|
||||
public void refreshTime() {
|
||||
_lastTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
package taurus.client.io;
|
||||
|
||||
import taurus.client.SocketCode;
|
||||
|
||||
/**
|
||||
* 缃戠粶閫氫俊寮傚父
|
||||
* @author daixiwei daixiwei15@126.com
|
||||
*
|
||||
*/
|
||||
public class TSocketException extends Exception{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public SocketCode socketCode;
|
||||
|
||||
public TSocketException(SocketCode code) {
|
||||
socketCode = code;
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue