TagSessionGroup新增过滤器参数

This commit is contained in:
远方夕阳 2021-09-08 21:48:21 +08:00
commit ddd7e741b8
25 changed files with 643 additions and 598 deletions

View File

@ -1,5 +1,7 @@
## 在线文档
## [https://www.yuque.com/yuanfangxiyang/ma4ytb](https://www.yuque.com/yuanfangxiyang/ma4ytb)
[语雀在线文档](https://www.yuque.com/yuanfangxiyang/ma4ytb)
---
@ -9,12 +11,18 @@ CIM是一套完善的消息推送框架可应用于信令推送即时聊
CIM采用业内主流开源技术构建易于扩展和使用并完美支持集群部署支持海量链接目前支持websocketandroidios桌面应用系统应用等多端接入持,可应用于移动应用物联网智能家居嵌入式开发桌面应用WEB应用即时消服务。
用时7年 基于CIM的项目已经运行在全国各个地方包括上司公司各地政务系统警务系统等服务于上百家客户希望CIM也能为您带来价值如果您也希望加入项目成为贡献者请联系我。
用时7年 基于CIM的项目已经运行在全国各个地方包括上司公司各地政务系统警务系统等服务于上百家客户希望CIM也能为您带来价值如果您也希望加入项目成为贡献者请联系我。如果觉得有用欢迎打赏。
<div align="center">
<img src="http://staticres.oss-cn-hangzhou.aliyuncs.com/qcode/ali_pay.jpg" width="30%" />
<img src="http://staticres.oss-cn-hangzhou.aliyuncs.com/qcode/wechat_pay.jpg" width="30%" />
</div>
---
## 以下是基于CIM开发的2款产品并不开源!!!
## [http://farsunset.com](http://farsunset.com)
## 相关产品
[官网介绍](http://farsunset.com)
#### 和信
和信是基于CIM组件开发的一整套完整的产品,面向所有人开放注册的试用场景。具有丰富的功能,聊天、群组、好友列表、黑名单、公众号、朋友圈等功能。不依赖任何第三方服务,可以私有化部署。
@ -32,17 +40,19 @@ CIM采用业内主流开源技术构建易于扩展和使用并完美支
---
#### 功能预览
## 功能预览
1.控制台页面[http://127.0.0.1:8080](http://127.0.0.1:8080)
![image](https://images.gitee.com/uploads/images/2019/0315/165050_9e269c1c_58912.png)
2.Android客户端
![image](https://images.gitee.com/uploads/images/2019/0315/165050_6f20f69e_58912.png)
3.Web客户端
![image](https://images.gitee.com/uploads/images/2019/0315/165050_dfc33c18_58912.png)
#### 更新日志
## 更新日志
-------------------------------------------------------------------------------------------
版本:3.5.0/时间:2018-08-22

View File

@ -1,28 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
<facet type="jpa" name="JPA">
<configuration>
<setting name="validation-enabled" value="true" />
<setting name="provider-name" value="Hibernate" />
<datasource-mapping>
<factory-entry name="entityManagerFactory" />
</datasource-mapping>
<datasource-mapping />
<naming-strategy-map />
</configuration>
</facet>
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
@ -30,78 +24,78 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.2" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.31" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.44" level="project" />
<orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.44" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.4.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.4.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.3.5" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.3.8" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.1.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.7" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.4.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.4.4" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.2" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.8" level="project" />
<orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" />
<orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.29.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.32.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.27.0-GA" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.2.3.Final" level="project" />
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.3" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.4" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.4.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.4.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.5.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-boot-starter:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-oas:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.1.2" level="project" />
@ -122,7 +116,7 @@
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:3.0.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.31" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:2.0.0.RELEASE" level="project" />
<orderEntry type="module-library">
@ -136,18 +130,18 @@
</orderEntry>
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.8.0" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.22" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.62.Final" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.11.1" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.65.Final" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.17.0" level="project" />
<orderEntry type="library" name="Maven: cn.teaey.apns4j:apns4j:1.1.4" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
</component>
</module>

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AnalysisUIOptions">
<option name="GROUP_BY_SEVERITY" value="true" />
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="bed47126-03b3-4370-a6c1-08503492974f" name="Default Changelist" comment="">
<<<<<<< HEAD
<change beforePath="$PROJECT_DIR$/../cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java" beforeDir="false" afterPath="$PROJECT_DIR$/../cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java" afterDir="false" />
=======
<change afterPath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/config/properties/APNsProperties.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/config/properties/CIMProperties.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cim-boot-server.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cim-boot-server.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cim-boot-server.ipr" beforeDir="false" afterPath="$PROJECT_DIR$/cim-boot-server.ipr" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cim-boot-server.iws" beforeDir="false" afterPath="$PROJECT_DIR$/cim-boot-server.iws" 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/farsunset/cim/BootApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/BootApplication.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/config/CIMConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/config/CIMConfig.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/service/impl/APNsServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/farsunset/cim/service/impl/APNsServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/application.properties" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.properties" afterDir="false" />
>>>>>>> bcb7a59ef440a21ae7f3d7778e84f49e971e162f
</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="DefaultGradleProjectSettings">
<option name="isMigrated" value="true" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
</component>
<component name="GitSEFilterConfiguration">
<file-type-list>
<filtered-out-file-type name="LOCAL_BRANCH" />
<filtered-out-file-type name="REMOTE_BRANCH" />
<filtered-out-file-type name="TAG" />
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="ProjectId" id="1PxWQToGq56jcmMz176UjXWLSaU" />
<component name="ProjectId" id="1vwGZ8Dv1qMn07dI9m3HkVqLJcd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
@ -52,69 +44,27 @@
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="configurable.group.appearance" />
<property name="show.migrate.to.gradle.popup" value="false" />
<property name="settings.editor.selected.configurable" value="reference.projectsettings.compiler.annotationProcessors" />
</component>
<component name="ReactorSettings">
<option name="notificationShown" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$" />
<recent name="$PROJECT_DIR$/libs" />
<recent name="$PROJECT_DIR$/src/main/resources" />
<recent name="$PROJECT_DIR$/src/main/java/com/farsunset/cim/component" />
<recent name="$PROJECT_DIR$/src/main/java/com/farsunset/cim/handler" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.farsunset.cim.config" />
<recent name="com.farsunset.cim.mvc.controller.admin" />
<recent name="com.farsunset.cim.constants" />
<recent name="com.farsunset.cim.component.redis" />
<recent name="com.farsunset.cim.service.impl" />
</key>
</component>
<component name="RunManager">
<configuration name="BootApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
<configuration name="BootApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="cim-boot-server" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.farsunset.cim.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="SPRING_BOOT_MAIN_CLASS" value="com.farsunset.cim.BootApplication" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Spring Boot.BootApplication" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="bed47126-03b3-4370-a6c1-08503492974f" name="Default Changelist" comment="" />
<created>1557734989980</created>
<created>1627465791411</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<<<<<<< HEAD
<updated>1557734989980</updated>
<workItem from="1557734991214" duration="96000" />
<workItem from="1557735150926" duration="502000" />
@ -146,47 +96,57 @@
<workItem from="1621956423905" duration="116000" />
<workItem from="1622640308758" duration="60000" />
<workItem from="1623163801922" duration="23000" />
=======
<updated>1627465791411</updated>
<workItem from="1627465794654" duration="349000" />
<workItem from="1627466201558" duration="208000" />
<workItem from="1627466418029" duration="385000" />
<workItem from="1627466811924" duration="208000" />
<workItem from="1627467028377" duration="54000" />
<workItem from="1627467091404" duration="120000" />
<workItem from="1627467220173" duration="16000" />
<workItem from="1627467243985" duration="40000" />
<workItem from="1627467292126" duration="21000" />
<workItem from="1627467321088" duration="57000" />
<workItem from="1627467385404" duration="49000" />
<workItem from="1627467441539" duration="34000" />
<workItem from="1627467484204" duration="15000" />
<workItem from="1627467507955" duration="492000" />
>>>>>>> bcb7a59ef440a21ae7f3d7778e84f49e971e162f
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>jar://$PROJECT_DIR$/lib/cim-server-sdk-mina-3.7.0.jar!/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.class</url>
<line>72</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>jar://$PROJECT_DIR$/lib/cim-server-sdk-netty-3.7.0.jar!/com/farsunset/cim/sdk/server/coder/WebMessageEncoder.class</url>
<line>22</line>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/farsunset/cim/component/message/PushMessageListener.java</url>
<line>24</line>
<option name="timeStamp" value="16" />
<url>file://$PROJECT_DIR$/src/main/java/com/farsunset/cim/service/impl/APNsServiceImpl.java</url>
<line>49</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
<select />
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/cim_boot_server$BootApplication.ic" NAME="BootApplication Coverage Results" MODIFIED="1627466289207" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="idea" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
</component>
</project>

View File

@ -11,14 +11,14 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<version>2.5.2</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<netty.version>4.1.62.Final</netty.version>
<protobuf.version>3.11.1</protobuf.version>
<netty.version>4.1.65.Final</netty.version>
<protobuf.version>3.17.0</protobuf.version>
<mysql.jdbc.version>8.0.22</mysql.jdbc.version>
<common.pool.version>2.8.0</common.pool.version>
<swagger.version>3.0.0</swagger.version>
@ -47,6 +47,13 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
@ -134,7 +141,6 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>

View File

@ -21,10 +21,16 @@
*/
package com.farsunset.cim;
import com.farsunset.cim.config.properties.APNsProperties;
import com.farsunset.cim.config.properties.CIMProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties({
APNsProperties.class,
CIMProperties.class})
public class BootApplication {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class, args);

View File

@ -67,10 +67,12 @@ public class BindHandler implements CIMRequestHandler {
session.setDeviceName(body.get("deviceName"));
session.setAppVersion(body.get("appVersion"));
session.setOsVersion(body.get("osVersion"));
session.setLanguage(body.get("language"));
channel.attr(ChannelAttr.UID).set(uid);
channel.attr(ChannelAttr.CHANNEL).set(session.getChannel());
channel.attr(ChannelAttr.DEVICE_ID).set(session.getDeviceId());
channel.attr(ChannelAttr.LANGUAGE).set(session.getLanguage());
/*
*存储到数据库

View File

@ -1,6 +1,7 @@
package com.farsunset.cim.config;
import com.farsunset.cim.component.handler.annotation.CIMHandler;
import com.farsunset.cim.config.properties.CIMProperties;
import com.farsunset.cim.sdk.server.group.SessionGroup;
import com.farsunset.cim.sdk.server.group.TagSessionGroup;
import com.farsunset.cim.sdk.server.handler.CIMNioSocketAcceptor;
@ -42,12 +43,11 @@ public class CIMConfig implements CIMRequestHandler, ApplicationListener<Applica
@Bean(destroyMethod = "destroy")
public CIMNioSocketAcceptor getNioSocketAcceptor(@Value("${cim.app.port}") int port,
@Value("${cim.websocket.port}") int websocketPort) {
public CIMNioSocketAcceptor getNioSocketAcceptor(CIMProperties properties) {
return new CIMNioSocketAcceptor.Builder()
.setAppPort(port)
.setWebsocketPort(websocketPort)
.setAppPort(properties.getAppPort())
.setWebsocketPort(properties.getWebsocketPort())
.setOuterRequestHandler(this)
.build();

View File

@ -0,0 +1,74 @@
/*
* Copyright 2013-2019 Xia Jun(3979434@qq.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
***************************************************************************************
* *
* Website : http://www.farsunset.com *
* *
***************************************************************************************
*/
package com.farsunset.cim.config.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "cim.apns")
public class APNsProperties {
private boolean debug;
private final P12 p12 = new P12();
public static class P12 {
private String file;
private String password;
public void setFile(String file) {
this.file = file;
}
public void setPassword(String password) {
this.password = password;
}
public String getFile() {
return file;
}
public String getPassword() {
return password;
}
}
public P12 getP12() {
return p12;
}
public boolean isDebug() {
return debug;
}
public void setDebug(boolean debug) {
this.debug = debug;
}
public String getP12File() {
return p12.file;
}
public String getP12Password() {
return p12.password;
}
}

View File

@ -0,0 +1,74 @@
/*
* Copyright 2013-2019 Xia Jun(3979434@qq.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
***************************************************************************************
* *
* Website : http://www.farsunset.com *
* *
***************************************************************************************
*/
package com.farsunset.cim.config.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "cim")
public class CIMProperties {
private final App app = new App();
private final Websocket websocket = new Websocket();
public App getApp() {
return app;
}
public Websocket getWebsocket() {
return websocket;
}
public static class App {
private Integer port;
public void setPort(Integer port) {
this.port = port;
}
public Integer getPort() {
return port;
}
}
public static class Websocket {
private Integer port;
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
}
public Integer getAppPort() {
return app.port;
}
public Integer getWebsocketPort() {
return websocket.port;
}
}

View File

@ -97,6 +97,12 @@ public class Session implements Serializable {
@Column(name = "os_version")
private String osVersion;
/**
* 终端语言
*/
@Column(name = "language")
private String language;
/**
* 登录时间
*/
@ -230,6 +236,14 @@ public class Session implements Serializable {
this.location = location;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public int getState() {
return state;
}

View File

@ -26,6 +26,7 @@ import cn.teaey.apns4j.network.ApnsChannel;
import cn.teaey.apns4j.network.ApnsChannelFactory;
import cn.teaey.apns4j.network.ApnsGateway;
import cn.teaey.apns4j.protocol.ApnsPayload;
import com.farsunset.cim.config.properties.APNsProperties;
import com.farsunset.cim.sdk.server.model.Message;
import com.farsunset.cim.service.APNsService;
import org.apache.commons.io.IOUtils;
@ -33,7 +34,6 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.InputStream;
@ -46,14 +46,12 @@ public class APNsServiceImpl implements APNsService {
private final ApnsChannelFactory apnsChannelFactory;
@Autowired
public APNsServiceImpl(@Value("${apple.apns.p12.file}") String p12File,
@Value("${apple.apns.p12.password}") String password,
@Value("${apple.apns.debug}") boolean isDebug){
InputStream stream = getClass().getResourceAsStream(p12File);
public APNsServiceImpl(APNsProperties properties){
InputStream stream = getClass().getResourceAsStream(properties.getP12File());
apnsChannelFactory = Apns4j.newChannelFactoryBuilder()
.keyStoreMeta(stream)
.keyStorePwd(password)
.apnsGateway(isDebug ? ApnsGateway.DEVELOPMENT : ApnsGateway.PRODUCTION)
.keyStorePwd(properties.getP12Password())
.apnsGateway(properties.isDebug() ? ApnsGateway.DEVELOPMENT : ApnsGateway.PRODUCTION)
.build();
}

View File

@ -58,9 +58,12 @@ spring.messages.basename=i18n/messages
##################################################################
# CIM Config #
##################################################################
#commented to disable this port.
cim.app.port=23456
cim.websocket.port=34567
apple.apns.debug=false
apple.apns.p12.password=123
apple.apns.p12.file= /apns/app.p12
#please setting your p12 info.
cim.apns.p12.file=/apns/app.p12
cim.apns.p12.password=123
cim.apns.debug=false

View File

@ -32,6 +32,7 @@ module.common.headlogo = 头像
module.common.homepage = 主页
module.common.website = 网址
module.common.text = 文字
module.common.language = 语言
module.global.error.500.hint = 服务程序发生内部错误
module.global.error.400.hint = 请求参数类型不正确

View File

@ -48,13 +48,14 @@ function doSendMessage(){
<table style="width: 100%" class="utable">
<thead>
<tr class="tableHeader">
<th width="10%"><@spring.message 'module.console.cimsession.account'/></th>
<th width="10%"><@spring.message 'module.console.cimsession.nid'/></th>
<th width="10%"><@spring.message 'module.console.cimsession.channel'/></th>
<th width="20%"><@spring.message 'module.console.cimsession.deviceid'/></th>
<th width="20%"><@spring.message 'module.console.cimsession.device.name'/></th>
<th width="10%"><@spring.message 'module.console.cimsession.app.version'/></th>
<th width="10%"><@spring.message 'module.console.cimsession.os.version'/></th>
<th width="8%"><@spring.message 'module.console.cimsession.account'/></th>
<th width="8%"><@spring.message 'module.console.cimsession.nid'/></th>
<th width="8%"><@spring.message 'module.console.cimsession.channel'/></th>
<th width="15%"><@spring.message 'module.console.cimsession.deviceid'/></th>
<th width="15%"><@spring.message 'module.console.cimsession.device.name'/></th>
<th width="8%"><@spring.message 'module.console.cimsession.app.version'/></th>
<th width="8%"><@spring.message 'module.console.cimsession.os.version'/></th>
<th width="10%"><@spring.message 'module.common.language'/></th>
<th width="10%"><@spring.message 'module.console.cimsession.online.time'/></th>
<th width="10%"><@spring.message "module.common.operation"/></th>
</tr>
@ -69,6 +70,7 @@ function doSendMessage(){
<td>${cimsession.deviceName! }</td>
<td>${cimsession.appVersion! }</td>
<td>${cimsession.osVersion! }</td>
<td>${cimsession.language! }</td>
<td>
<@spring.messageArgs "module.console.cimsession.time.format",[((.now?long - cimsession.bindTime)/1000)?round?c] />
</td>

File diff suppressed because one or more lines are too long

View File

@ -63,6 +63,7 @@ CIMPushManager.bind = function (account) {
body.getDataMap().set("packageName", APP_PACKAGE);
body.getDataMap().set("deviceId", deviceId);
body.getDataMap().set("deviceName", browser.name);
body.getDataMap().set("language", navigator.language);
CIMPushManager.sendRequest(body);
};

View File

@ -63,6 +63,7 @@ CIMPushManager.bind = function (account) {
body.getDataMap().set("packageName", APP_PACKAGE);
body.getDataMap().set("deviceId", deviceId);
body.getDataMap().set("deviceName", browser.name);
body.getDataMap().set("language", navigator.language);
CIMPushManager.sendRequest(body);
};

0
cim-client-sdk/cim-android-sdk/cim-android-sdk.iml Executable file → Normal file
View File

View File

@ -28,11 +28,13 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.LocaleList;
import android.text.TextUtils;
import com.farsunset.cim.sdk.android.logger.CIMLogger;
import com.farsunset.cim.sdk.android.constant.CIMConstant;
import com.farsunset.cim.sdk.android.model.SentBody;
import java.util.Locale;
import java.util.UUID;
/**
@ -161,6 +163,7 @@ public class CIMPushManager {
sent.put("appVersion", getVersionName(context));
sent.put("osVersion", Build.VERSION.RELEASE);
sent.put("packageName", context.getPackageName());
sent.put("language", getLanguage());
sent.setTimestamp(System.currentTimeMillis());
sendRequest(context, sent);
}
@ -293,4 +296,10 @@ public class CIMPushManager {
return deviceId;
}
private static String getLanguage(){
Locale locale = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? LocaleList.getDefault().get(0) : Locale.getDefault();
return locale.getLanguage() + "-" + locale.getCountry();
}
}

View File

@ -9,4 +9,5 @@ public interface ChannelAttr {
AttributeKey<String> ID = AttributeKey.valueOf("id");
AttributeKey<String> DEVICE_ID = AttributeKey.valueOf("device_id");
AttributeKey<String> TAG = AttributeKey.valueOf("tag");
AttributeKey<String> LANGUAGE = AttributeKey.valueOf("language");
}

View File

@ -67,6 +67,7 @@ const onbindAccount = CIMPushManager.bindAccount = function (account) {
body.getDataMap().set("packageName", APP_PACKAGE);
body.getDataMap().set("deviceId", deviceId);
body.getDataMap().set("deviceName", browser.name);
body.getDataMap().set("language", navigator.language);
CIMPushManager.sendRequest(body);
};

View File

@ -3,16 +3,16 @@
<head>
<meta charset="utf-8"/>
<title>CIM Webclient </title>
<link rel="shortcut icon" href="/image/favicon.ico" type="image/x-icon">
<link charset="utf-8" rel="stylesheet" href="/bootstrap-3.3.7-dist/css/bootstrap.min.css" />
<link charset="utf-8" rel="stylesheet" href="/css/common.css" />
<script type="text/javascript" src="/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="/js/common.js"></script>
<script type="text/javascript" src="/js/cim/message.js"></script>
<script type="text/javascript" src="/js/cim/replybody.js"></script>
<script type="text/javascript" src="/js/cim/sentbody.js"></script>
<script type="text/javascript" src="/js/cim/cim.web.sdk.js"></script>
<link rel="shortcut icon" href="./image/favicon.ico" type="image/x-icon">
<link charset="utf-8" rel="stylesheet" href="./css/bootstrap.min.css" />
<link charset="utf-8" rel="stylesheet" href="./css/common.css" />
<script type="text/javascript" src="./js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="./js/common.js"></script>
<script type="text/javascript" src="./js/cim/message.js"></script>
<script type="text/javascript" src="./js/cim/replybody.js"></script>
<script type="text/javascript" src="./js/cim/sentbody.js"></script>
<script type="text/javascript" src="./js/cim/cim.web.sdk.js"></script>
</head>
@ -125,7 +125,7 @@
<div class="modal-content" >
<div class="modal-body" style="padding:0px;" >
<div style="height:200px;text-align: center; background: #5FA0D3; color: #ffffff; border: 0px; border-top-left-radius: 4px; border-top-right-radius: 4px;">
<img src="/image/icon.png" style="height: 72px;width: 72px;margin-top:40px;"/>
<img src="./image/icon.png" style="height: 72px;width: 72px;margin-top:40px;"/>
<div style="margin-top: 20px; color: #ffffff;font-size: 16px;">请输入一个帐号用于登录,随后接收推送消息</div>
</div>