国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

swoole 超簡單 構建聊天室.資辭 群聊,組聊,單聊.

Towers / 1433人閱讀

摘要:今天來做一個簡單的聊天室支持換房間支持私信的寫的代碼有點渣里面有很多不是很好的地方畢竟我只是一個野生程序猿環境地址樣子差不多是這個樣子的我不想把代碼發到我的服務器上因為這個項目太小了很垃圾而且怕被攻擊這里有錄的一個演示視頻沒有廣告的你們可以

今天來做一個簡單的聊天室,支持換房間,支持私信的. 寫的代碼有點渣,里面有很多不是很好的地方.畢竟我只是一個野生程序猿.
 環境:
 php7.0
 apache 2.4
 swoole 1.9
 redis  4.0

bilibili : https://www.bilibili.com/vide...
github地址:https://github.com/buffge/buf...

樣子差不多是這個樣子的:

我不想把代碼發到我的服務器上,因為這個項目太小了.很垃圾.而且怕被攻擊.
這里有錄的一個演示視頻(bilibili沒有廣告的).你們可以看一下,
你們也可以直接到github 把源碼下載下來, 絕對有用.不好用找我.
把我的ip地址 192.168.1.109改成你們的ip就能用了.
我這里做了3個房間,首次登錄是在公共聊天室.可以隨意切換到文人雅士專區,當然了也可以選擇去死肥宅那一欄.
流程差不多是這樣:

登錄一個聊天室

1.1 后臺觸發open 事件. 此時判斷是初次登錄還是已注冊之后刷新的,如果是注冊刷新的話 將session中保存的用戶
   信息發送給swoole服務器 并進行注冊.然后返回注冊成功或者失敗,還有當前在線的用戶列表
   如果是新用戶,那么就直接將當前所在的聊天室的所有用戶列表發送給客戶端.兩者都會插入新數據進redis數據庫
   

1.2 此時如果不注冊 那么就無法發消息給當前分組,如果注冊的話 先去網站后臺驗證session 驗證碼 并將使用的用戶名

   和時間戳和鹽進行sha256信息摘要.然后向swooleWebSocket服務器請求注冊.此時服務器會判斷 如果用戶信息的前6個字母
   是tokenR 并且當前未注冊 如果token 驗證成功那么就插入redis數據庫,并通知客戶注冊成功,再通知客戶所在組的所有用戶
   添加用戶用戶(就是當前在線那一欄)
   代碼差不多是這樣的        

此時已經登錄成功了,可以隨意切換分組了.每次切換分組用戶的編號都會重設.因為swoole規定就是這樣,只要斷開連接,
之后的連接就是一個新連接,比如之前的socket號 是1 那么斷開后下一個就是2.但是根據session 判斷是可以保存住用戶名,
而使刷新之后還是之前的用戶名.(但是這)
2.1

   公共聊天室的人聊天只有公共聊天室人看見,文人雅士專區只有文人雅士看見.

2.2

   私信單聊只有對方可以看見,別人都看不見 這個主要就是將發送的信息前6個字母寫成sendTo
   代碼流程差不多是這樣的.      

哎呀我發現流程好少啊.還是看后臺吧.

后臺主要就是我新建的一個叫WebS的類.這個類繼承了SwooleWebsocketServer
并新增一些邏輯方法
主要如下:

1. checkRegisterName() 檢查用戶名是否可以用   
   原型 checkRegisterName(Redis  $redis, string  $user_name, uffstring  $reload) : boolean
2. sendToPerson()  發送消息給單個用戶
   原型 sendToPerson(integer  $fd, string  $mes, integer  $type, string  $sendTo = "", string  $user_name = "", Redis  $redis = null)
3. sendToGroup() 發送消息給單個組
   原型 sendToGroup(int $frameFd, Redis $redis, string $user_name, int $type, string $mes = "", string $group = "public")
 4. getOnlineUsersList() 獲取當前所有已注冊的用戶列表  原型我就不寫了,下面貼github.源碼注釋好了
 5. checkToken() 檢查token 是否正確
 6. judgeMesEventType() 判斷用戶發送的消息 分析他想要干嘛

沒了. 是不是超簡單. 有了swoole 這樣簡單.而且這個是國人開發的! 你們去swoole官網可以學習,文檔很多,而且swoole功能能強大,
我只看了一點點websocket 那一章的,其他的基本沒看,因為看不懂! 還有redis 普通用法很簡單.我就是上慕課網> 看了20分鐘這個視頻.>http://www.imooc.com/video/14315 我這里就是把redis 當作mysql來用的.
然后只用了hash 這一個類型,用了兩三個函數,其他的都不會.什么加鎖 只讀之類的都沒有弄
phpredis擴展百度安裝.
這個是一次性完成的,從昨天夜里開始做,做到早上,沒有檢查,我就看能正常運行,控制臺沒有異常信息 就發上來了.
要是你們遇到問題,我能解決的一定解決. 另外 請大家支持國產優秀作品 swoole!http://swoole.com
swoole 官方qq交流群 193772828 我在里面屬于菜逼那種.你們學習swoole 有問題可以去群里交流.
再說一遍 視頻地址(7分鐘 演示)

bilibili : https://www.bilibili.com/vide...
github地址:https://github.com/buffge/buf...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23299.html

相關文章

  • netty搭建web天室(3)單聊

    摘要:開始聊天發送聊天信息時消息,這樣后端就知道是誰要發給誰,根據用戶名去找到具體的線程去單獨推送消息,實現單聊。前端待完善左側聊天列表沒有實現,每搜索一個在線用戶,應該動態顯示在左側,點擊該用戶,動態顯示右側聊天窗口進行消息發送。 上節課講了群聊,這次來說說單聊,單聊要比群聊復雜點,但是代碼也不是很多,主要是前端顯示比較麻煩點。 效果:showImg(https://segmentfaul...

    Lavender 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<