1. 程式人生 > 其它 >WebSocket實現實時聊天系統

WebSocket實現實時聊天系統

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 實現的,未上線~

等閒變卻故人心

    卻道故人心易變