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 實現的,未上線~
等閑變卻故人心
卻道故人心易變