php從零搭建即時通訊 零 專案介紹

2021-09-01 05:39:29 字數 928 閱讀 6593

首先我的採用了,gatewaywork搭建長連線,使用tp5進行api及前端頁面的實現,資料庫就順便用個mysql了

實現效果如下

即時通訊跟我們平時進行的前後端的互動有什麼不同呢

很簡單,三次握手與長連線的區別

三次握手太常見了就不細談了,我們主要講講長連線,        

長連線,就是伺服器與客戶端的連線一直不斷,        

使用三次握手時,就是廣大的客戶端知道伺服器的ip位址,然後想伺服器傳送請求就完事了,        

那麼問題來了,三次握手客戶端向伺服器推訊息是沒問題了,但是服務給客戶端發訊息怎麼辦呢,        

所有的客戶端都知道自己想訪問伺服器的位址,但是伺服器不知道那些是他向想推送訊息的客戶端的ip,        

這時候怎麼辦呢,hh長連線就該出場了,        

使用長連線後我們服務端就可以知道有那些客戶端跟它通訊了,就可以相互推送訊息了        

但是長連線及其消耗cpu資源,謹慎使用

這個就是我採用的php建立長連線的庫,使用這個庫以後,會在你的伺服器中自己建立乙個websocket用來進行長連線,官網傳送門

寫**之前先分析需求我們這個最終的實現的專案,需要的需求如下

1.能實時進行點對點的聊天(可以同時與多人進行)

2.能傳送

3.能傳送表情

4.能顯示自己的與聊天物件的頭像

5.每次進入聊天介面能獲取最近的10條記錄

6.在資訊列表頁面能顯示未讀訊息的條數

7.在資訊列表頁面能顯示未讀訊息的傳送者的頭像

8.在資訊列表頁面能顯示未讀訊息的傳送者傳送的最後一條訊息

9.在資訊列表頁面能顯示未讀訊息的傳送時間

這些功能將在下面的系列,一一講解

即時通訊 ActiveMQ環境搭建

如圖 1.解壓壓縮包 2.解壓後的目錄如下 bin windows下面的bat和unix linux下面的sh conf activemq配置目錄,包含最基本的activemq配置檔案 data 預設是空的 docs index,replease版本裡面沒有文件,b不知道為啥不帶 example 幾...

從零開始開發乙個即時通訊專案

關於聊天室專案 聊天室專案,也被稱為即時通訊 im 比如極光 im 因為之前用的比較多的是極光的推送服務,也對極光的一些服務和開發文件比較熟悉,所以該專案就是完全使用極光的 sdk。im 的應用場景 介紹 該場景只需要一些基礎的聊天功能,直接繼承第三方 im 的優點是不需要後台去實現一大堆東西,前端...

vue學習 從零搭建vue webpack專案

vue專案搭建依賴node的npm包管理器,所以我們先得安裝node,此處就不詳細講解其安裝過程。npm install g vue cli安裝成功後可以輸入vue檢視相關命令的使用,輸入vue list可以檢視vue可以用的模板 我們這裡選擇webpack模板 vue init webpack p...