Advertisement

使用Spring Boot整合Netty与Socket.IO集群支持

阅读量:

1、实现思路

IM系统中每个节点均被赋予一个唯一的标识符A,该标识符由机器码与IM端口号共同构成。

当客户端成功连接至IM节点后,将客户端所携带的用户唯一标识ID与其所连接的IM服务端的唯一标识A进行关联绑定。

当两个用户之间进行消息交互时,首先需判断接收方用户是否处于在线状态。若接收用户在线,则直接获取其对应的socketclient;若无法获取,则依据接收用户的ID查询其所在节点的唯一标识。

随后通过redis的订阅发布机制,将消息转发至接收用户所在的节点。各个节点仅订阅与其自身唯一标识相匹配的topic。

2、代码

pom

复制代码
  <dependencies>

    
     <dependency>
    
         <groupId>org.springframework.boot</groupId>
    
         <artifactId>spring-boot-starter-web</artifactId>
    
     </dependency>
    
     <dependency>
    
         <groupId>com.alibaba</groupId>
    
         <artifactId>fastjson</artifactId>
    
         <vers

全部评论 (0)

还没有任何评论哟~