WebSocket實現實時聊天系統
等閒變卻故人心,卻道故人心易變。
簡介:前幾天看了WebSocket,今天體驗下它的實時聊天。
一、專案介紹
WebSocket 實時聊天系統自己一個一碼的搞出來還是要花費好多時間的,我就找了兩個專案來玩玩。但眾所周知,專案來了還是要稍加修改才可正常使用,下面推薦兩個很好改的典型專案。
尊重-尊重-尊重原創,這兩個專案我是幾天前在Github 上找到的並非原創,但瀏覽網頁關掉了,Github 原文連結找不到了貼不出來,下面提供百度網盤下載連結,壓縮包很小下載方便。
下載連結1: https://pan.baidu.com/s/1c1_ePy_B3zlsqbIhQCPsZA 密碼: eont
下載連結2:https://pan.baidu.com/s/1dDN2fc4Jsom69BwtblJ8Zg 密碼: fsmw
二、專案1-ChatOnLine
該專案使用WebSocket 及Java 搭建線上聊天系統,包含服務端和客戶端。
我個人感覺這個專案的技術算是比較老的,現在很多專案至少都是SpringBoot、前後端分離等。而這個專案不僅是要釋出到tomcat 中執行,而且前後端不分離、後端程式碼混插這JSP頁面等,程式碼讀起來比較費勁,但寫出來的都是高手,點贊。
1、匯入工程
下載好zip 包解壓,匯入IDEA 中,IDEA 配置好maven 後都會順利下載Jar 包依賴。
可能會報錯的地方,不錯最好;Project Structure 下的Modules 多出了其他沒必要的Modules,只需保留chat-online-maven 一個Modules。
還有一個要修改的地方,這個地方啟動並不會報錯,但是到查詢資料庫的時候就會報錯,因為工程中使用的連線Mysql 資料庫工具的版本太低了,調高版本即可。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
2、執行工程
匯入工程都沒有任何報錯之後,就可以著手執行工程了。但這個專案有涉及到資料庫操作,所以先把資料庫準備好以及程式碼中連線資料庫的使用者名稱稱、密碼、資料庫名稱。
1、修改工程中DBInfo
修改DBInfo 類中的url、username和password,改為能連上自己Mysql 資料庫的url、username、password,其中url 包括IP 和資料庫名稱。
2、建立本地資料庫&表
可以在資料庫介面手動建立,也可以通過Sql 語句執行。
create database dbchatroom;/*建立資料庫*/ --建立使用者表
create table ChatUser(username CHAR(20) PRIMARY KEY, password CHAR(64) NOT NULL, nickname VARCHAR(20), sex CHAR(2)); create view ViewUserToChat as select username, password, nickname, sex from ChatUser;
3、釋出工程到Tomcat 容器
還是SpringBoot 專案方便快捷,內建tomcat 容器,不需要把工程打包到tomcat 中。配置tomcat 容器就不多說了,改下Server 和Deployment 選中要釋出的工程即可。
釋出成功:
4、登入聊天系統
先點選註冊,再使用註冊的賬號登入聊天室。
聊天介面:
這個專案到這裡我還是不太滿意,使用者限制方面可以借鑑,但聊天介面和方式不太樂觀。還是要結合專案二,但是專案二有部分資料是寫死的比如使用者,沒有專案一靈活。
三、專案二-ChatRoom
該專案使用Spring + Netty + WebSocket 實現了實時聊天系統,這個專案最令我滿意的一點就是匯入即可執行,無需任何一絲一毫的改動。
1、釋出執行
專案二也不是SpringBoot 專案,執行方式和專案一一樣,需要釋出到tomcat 容器。
2、登入介面
該使用者資料寫死,沒用到資料庫,上圖UserInfoDaoImpl 中記錄著登入資訊。
3、聊天介面
聊天介面做的也很好,再加上一些功能進一步完善就可以商用了。
五、我的聊天系統
我的聊天系統也是基於WebSocket 實現的,未上線~
等閒變卻故人心
卻道故人心易變