免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動推薦你的品牌,搶占AI流量入口!  點擊查看

小程序模板網(wǎng)

微信小程序聊天系統(tǒng)搭建

發(fā)布時間:2017-12-05 09:18 所屬欄目:小程序開發(fā)教程

本文主要介紹基于公司的一個微信小程序項目socket聊天系統(tǒng)的搭建,前后端代碼,服務(wù)器配置均由一個人完成,難度不大;本文目錄:1、搭建HTTPS和wss環(huán)境;2、定義前后端通信json協(xié)議;3 ...

 
 
 
本文主要介紹基于公司的一個微信小程序項目socket聊天系統(tǒng)的搭建,前后端代碼,服務(wù)器配置均由一個人完成,難度不大;

本文目錄:

1、搭建HTTPS和wss環(huán)境;

2、定義前后端通信json協(xié)議;

3、聊天系統(tǒng)搭建;

4、注意事項。

環(huán)境準備

一、搭建HTTPS和wss環(huán)境

具體搭建過程請查看我的另外一篇文章《微信小程序服務(wù)器環(huán)境搭建--suse版》,由于wss域名不能帶端口,所以建議用Nginx進行代理轉(zhuǎn)發(fā)。

二、定義前后端通信json協(xié)議

其中token用來驗證消息來源合法性,fd為當前socket連接資源ID,from為對方socket連接資源ID,cmd定義當前操作。

三、聊天系統(tǒng)搭建

1、服務(wù)端

采用TP5和swoole擴展,新建一個socket模塊專門處理socket,目錄結(jié)構(gòu)如下

分為服務(wù)端server.php和客戶端client.php,服務(wù)端以cli形式運行,具體代碼請參考swoole源碼包中的ssl樣例;

運行命令如下(先切換到服務(wù)器程序代碼的public目錄 ):

php index.php socket/server/index

客戶端其實是一個web端的websocket,源碼包中同樣有提供樣例。請自行查看,此處不貼出源碼。

2、小程序客戶端

簡單封裝下微信提供的socket接口,用于處理連接成功,發(fā)送消息,連接失敗自動重連等公用操作,目錄結(jié)構(gòu)如下

發(fā)送方法封裝參考:

3、保證cli程序100%可用

編寫shell腳本如下:

count=`ps -fe |grep "socket/server" | grep -v "grep" | grep "master" | wc -l`

echo $count

if [ $count -lt 1 ]; then

ps -eaf |grep "socket/server" | grep -v "grep"| awk '{print $2}'|xargs kill -9

sleep 2

ulimit -c unlimited

/opt/app/php/bin/php /opt/web/think/public/index.php socket/server/index

echo "restart";

echo $(date +%Y-%m-%d_%H:%M:%S) >/opt/script/log/restart.log

fi

啟用crontab

crontab -e

加入一行:

*/1 * * * * /opt/script/check_server.sh #每隔一分鐘檢測下腳本

crontab -l

四、注意事項

1、如果使用TP5的幫助函數(shù)model出現(xiàn)下面的錯誤,是數(shù)據(jù)庫連接過期導致,把連接過期時間設(shè)置長點,但是總有過期的時候,所以建議改用mongodb

2、微信小程序真機環(huán)境不予許指定端口,那上面的服務(wù)器配置就沒有什么用,解決辦法是:停用Apache的ssl模塊,改用Nginx作為反向代理,具體方法參考我之前寫的文章。親測可用

3、如果用Nginx作為反向代理遇到會話很容易過期,有兩種辦法,一個是設(shè)置代理超時時間為一個很長的時間;一個是客戶端做個心跳檢測.這兩種辦法會增加服務(wù)器內(nèi)存消耗,但是沒有辦法只有折中考慮。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/18045.html 復制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢: 點擊咨詢
在線客服