[{"title":"( 38 个子文件 67KB ) Nginx + Websocket 实现推送","children":[{"title":"WSPush","children":[{"title":"pom.xml <span style='color:#111;'> 2.52KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"main","children":[{"title":"webapp","children":[{"title":"WEB-INF","children":[{"title":"web.xml <span style='color:#111;'> 1.20KB </span>","children":null,"spread":false}],"spread":true},{"title":"resources","children":[{"title":"js","children":[{"title":"jquery-1.7.2.min.js <span style='color:#111;'> 92.62KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"version.jsp <span style='color:#111;'> 1.13KB </span>","children":null,"spread":false},{"title":"client.jsp <span style='color:#111;'> 4.95KB </span>","children":null,"spread":false}],"spread":true},{"title":"resources","children":[{"title":"system.properties <span style='color:#111;'> 719B </span>","children":null,"spread":false},{"title":"log4j.properties <span style='color:#111;'> 2.20KB </span>","children":null,"spread":false},{"title":"springmvc-servlet.xml <span style='color:#111;'> 1.82KB </span>","children":null,"spread":false},{"title":"applicationContext.xml <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"cn","children":[{"title":"milo","children":[{"title":"logic","children":[{"title":"BrotherLogic.java <span style='color:#111;'> 2.36KB </span>","children":null,"spread":false},{"title":"PushLogic.java <span style='color:#111;'> 11.87KB </span>","children":null,"spread":false}],"spread":true},{"title":"thread","children":[{"title":"WSCloseManyClient.java <span style='color:#111;'> 1.67KB </span>","children":null,"spread":false},{"title":"ServerTools.java <span style='color:#111;'> 1.59KB </span>","children":null,"spread":false}],"spread":true},{"title":"domain","children":[{"title":"CustomReason.java <span style='color:#111;'> 353B </span>","children":null,"spread":false},{"title":"Client.java <span style='color:#111;'> 1.91KB </span>","children":null,"spread":false}],"spread":true},{"title":"websocket","children":[{"title":"WebSocketServer.java <span style='color:#111;'> 2.48KB </span>","children":null,"spread":false}],"spread":true},{"title":"controller","children":[{"title":"PushController.java <span style='color:#111;'> 3.92KB </span>","children":null,"spread":false},{"title":"BrotherController.java <span style='color:#111;'> 1.62KB </span>","children":null,"spread":false}],"spread":true},{"title":"redis","children":[{"title":"dao","children":[{"title":"RedisDataSource.java <span style='color:#111;'> 442B </span>","children":null,"spread":false},{"title":"impl","children":[{"title":"RedisDateSourceImpl.java <span style='color:#111;'> 1.72KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"config","children":[{"title":"RedisConfig.java <span style='color:#111;'> 5.19KB </span>","children":null,"spread":false}],"spread":false},{"title":"service","children":[{"title":"JedisService.java <span style='color:#111;'> 4.75KB </span>","children":null,"spread":false}],"spread":false},{"title":"util","children":[{"title":"SerializeUtil.java <span style='color:#111;'> 1.10KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"service","children":[{"title":"WebSocketService.java <span style='color:#111;'> 12.57KB </span>","children":null,"spread":false},{"title":"BrotherService.java <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false}],"spread":false},{"title":"util","children":[{"title":"PropertyFactory.java <span style='color:#111;'> 890B </span>","children":null,"spread":false},{"title":"StringUtil.java <span style='color:#111;'> 975B </span>","children":null,"spread":false},{"title":"HttpUtil.java <span style='color:#111;'> 4.48KB </span>","children":null,"spread":false},{"title":"ErrorCodeEnum.java <span style='color:#111;'> 981B </span>","children":null,"spread":false},{"title":"WebSocketUtil.java <span style='color:#111;'> 244B </span>","children":null,"spread":false},{"title":"DateHelper.java <span style='color:#111;'> 727B </span>","children":null,"spread":false},{"title":"Config.java <span style='color:#111;'> 653B </span>","children":null,"spread":false},{"title":"WebSocketEnum.java <span style='color:#111;'> 1.22KB </span>","children":null,"spread":false},{"title":"RSAEncrypt.java <span style='color:#111;'> 12.80KB </span>","children":null,"spread":false},{"title":"AuthorityInterceptor.java <span style='color:#111;'> 2.19KB </span>","children":null,"spread":false},{"title":"Base64.java <span style='color:#111;'> 8.03KB </span>","children":null,"spread":false},{"title":"RSASignature.java <span style='color:#111;'> 3.21KB </span>","children":null,"spread":false},{"title":"VersionUtil.java <span style='color:#111;'> 215B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}]