PHP分組聊天室--fooking現實 原 薦

   最近也是比較忙,公司打碼,回家繼續打,越忙越折騰! 一個不小心半夜一點了,花了一晚上時間終於把這個分組聊天室寫完了,前兩天剛把fooking的websocket協議加上,純lua實現。

   fooking的項目地址:http://git.oschina.net/scgywx/fooking

   在線demo地址: http://182.254.135.131/chat/

   開發聊天室這基本是上每個搞socket長連接的一個通例了,主要是實現起來簡單,能使用最少的代碼實現客戶端與服務端持久通信,那麼這次也不例外,還是拿聊天室說事,不過這次要"高級"一點,能分組,而不是發個消息就廣播給所有人。當某個用戶向指定組發送數據時,只有在此分組的用戶才能收到消息,別的分組不會收到消息。當然這裏的分組是利用了fooking的一個組播機制,把N個客戶端加入到一個分組(組名可以是任意字符串),發消息的時候只需要指定組名即可(其實也就是存儲一個列表,然後遍歷發送,只是這一步由fooking完成)。

   聊天室的界面大概就是如下這樣子,左邊是用戶列表,右上方是頻道列表(可以選擇),下面是消息列表,當選擇一個你沒有加入過的頻道將會彈出“加入此頻道“的按鈕,點擊就能加入該頻道了,剩下的就是聊天了,大致功能就是這樣子。


    這樣一個聊天室程序,只需要不到100行php和不到200行html/css/js,其配置也非常簡單,如下步驟:

    1、啓動router, 修改項目src目錄下的router.lua配置文件(比如:端口,日誌等),然後執行:./fooking router.lua

    2、啓動gateway, 修改項目src目錄下的config.lua配置文件(比如:端口,router端口,script, php程序路徑等,最主要是FASTCGI_ROOT),  然後執行: ./fooking config.lua   

              注意:  在config.lua裏面配置了script.lua(用於處理打包和解包),在修改config.lua的時候請注意script.lua的路徑

                          script.lua裏面使用了websocket協議,他需要依賴另一個Sha1.lua文件(在src目錄就有),請注意一定要把script.lua與Sha1.lua放在同一目錄,不然可能會報錯

    3、 安裝php-fpm、redis、redis擴展

    4、修改example/chat/index.html文件裏面websocket的IP和端口(查找ws://就能找到)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章