最近跟着大佬 https://tycoding.cn/2019/06/16/project/boot-chat/
敲了2個關於websocket的demo,總結一下
從將會話信息保存在session中,缺點,項目啟動后,對話必須在同一瀏覽器打開,才可以避免消息丟失
1.pom文件引入相關依賴
<!--websocket-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
2.application.yml進行配置
3.創建user對象--封裝用戶信息,Message對象,儲存對話信息
4.編寫接口ChatSessionService及其impl實現類,獲取在線用戶、實現信息推送
5.創建HttpSessionConfig類,從websocket對象獲取HttpSession
6.創建websocketServerEndPoint實例對象(包含websocket各生命周期),添加@ServerEndPoint注解,將HttpSessionConfig配置進去(從websocket獲取session)
7.controller層實現路由控制和接口跳轉&前端頁面&js實現
可以從github上clone我的或者大佬的代碼
我的git地址:https://github.com/AliceSunCong/session-chat
大佬的git地址:https://github.com/TyCoding/boot-chat/tree/master/session-chat