woann-chat 一個(gè)基于laravelS和layim的聊天系統(tǒng)喻鳄。

woann-chat是一個(gè)基于LaravelS和Layim編寫的聊天系統(tǒng)。

項(xiàng)目地址:https://github.com/woann/chat

演示地址:http://chat.woann.cn (測試賬號同安裝中的測試賬號同步)

依賴 說明
PHP >= 7.2 推薦7.2
Swoole >= 4.2.9 從2.0.12開始不再支持PHP5 推薦4.2.9+
LaravelS >=3.3.9 LaravelS是一個(gè)將swoole和laravel框架結(jié)合起來的膠水工具

聲明

  • 此項(xiàng)目是基于LaravelS作為服務(wù)端游桩,所以在此之前初橘,你要熟悉swoole、laravel幢炸、還有將他們完美結(jié)合的LaravelShttps://github.com/hhxsv5/laravel-s
  • 前端部分是采用layui,在此鄭重說明泄隔,layui中的im部分layim并不開源,僅供交流學(xué)習(xí)阳懂,請勿將此項(xiàng)目中的layim用作商業(yè)用途梅尤。
  • 此項(xiàng)目持續(xù)開發(fā)中,歡迎有興趣的朋友共同維護(hù)

功能列表

  • 登錄 | 沒什么好說的...
  • 注冊 | 注冊過程中為用戶分配了一個(gè)默認(rèn)分組岩调,并將用戶添加到所有人都在的一個(gè)群(10001)
  • 查找-添加好友 | 可以根據(jù)用戶名、昵稱赡盘、id來查找号枕,不輸入內(nèi)容則查找所有用戶,點(diǎn)擊發(fā)起好友申請
  • 查找-加入群 | 可根據(jù)群昵稱陨享、群id查找群聊葱淳,點(diǎn)擊加入
  • 創(chuàng)建群 | 創(chuàng)建一個(gè)群聊
  • 消息盒子 | 用來接受好友請求和同意或拒絕好友請求的系統(tǒng)消息
  • 個(gè)性簽名 | 并沒有什么卵用的功能
  • 一對一聊天 | 可發(fā)送文字、表情抛姑、圖片赞厕、文件、代碼等
  • 群聊 | 新成員加入群聊時(shí)定硝,如果此刻你正開啟著該群對話框皿桑,將收到新人入群通知
  • 查看群成員
  • 臨時(shí)會話 | 在群成員中,點(diǎn)擊群成員頭像即可發(fā)起臨時(shí)會話
  • 歷史記錄 | 聊天面板只顯示20條記錄蔬啡,更多記錄點(diǎn)擊聊天記錄查看
  • 離線消息 | 對方不在線的時(shí)候诲侮,向?qū)Ψ桨l(fā)起好友請求或者消息,將在對方上線后第一時(shí)間推送
  • 換膚 | 這個(gè)是layim自帶的東西箱蟆。沟绪。
  • ...

安裝

  • 執(zhí)行安裝命令git clone https://github.com/woann/chat將項(xiàng)目克隆到本地
  • 導(dǎo)入sql,項(xiàng)目根目錄下有個(gè)woann_chat.sql文件空猜,將該sql文件導(dǎo)入數(shù)據(jù)庫即可
  • 修改.env文件绽慈,按照你的數(shù)據(jù)庫賬號密碼進(jìn)行配置
  • 運(yùn)行l(wèi)aravelS php bin/laravels start
  • 此時(shí)訪問127.0.0.1:9501即可進(jìn)入登錄頁面
  • 測試賬號 test01 - test04 密碼全是123456,當(dāng)然你也可以自行注冊辈毯。

配合nginx使用

  • nginx配置文件
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
upstream laravels {
    # 通過 IP:Port 連接
    server 127.0.0.1:9501 weight=5 max_fails=3 fail_timeout=30s;
    # 通過 UnixSocket Stream 連接坝疼,小訣竅:將socket文件放在/dev/shm目錄下,可獲得更好的性能
    #server unix:/xxxpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
    #server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
    #server 192.168.1.2:5200 backup;
    keepalive 16;
}
server {
    listen 80;
    # 別忘了綁Host喲
    server_name xxx.com;#在這里配置域名
    root /xxx/woann-chat/public;#在這里配置文件目錄
    access_log /yyypath/log/nginx/$server_name.access.log;
    autoindex off;
    index index.html index.htm;
    # Nginx處理靜態(tài)資源(建議開啟gzip)漓摩,LaravelS處理動(dòng)態(tài)資源裙士。
    location / {
        try_files $uri @laravels;
    }
    # 當(dāng)請求PHP文件時(shí)直接響應(yīng)404,防止暴露public/*.php
    #location ~* \.php$ {
    #    return 404;
    #}
    # Http和WebSocket共存管毙,Nginx通過location區(qū)分
    # !!! WebSocket連接時(shí)路徑為/ws
    # Javascript: var ws = new WebSocket("ws://xxx.com/ws");
    location =/ws {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout:如果60秒內(nèi)被代理的服務(wù)器沒有響應(yīng)數(shù)據(jù)給Nginx腿椎,那么Nginx會關(guān)閉當(dāng)前連接桌硫;同時(shí),Swoole的心跳設(shè)置也會影響連接的關(guān)閉
        # proxy_read_timeout 60s;
        proxy_http_version 1.1;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass http://laravels;
    }
    location @laravels {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout 60s;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_pass http://laravels;
    }
}
  • resources/view/index.blade.php文件中簡歷websocket中的
socket = new WebSocket('ws://127.0.0.1:9501?sessionid={{ $sessionid }}');

替換成

socket = new WebSocket('ws://xxx.com/ws?sessionid={{ $sessionid }}');

待完成

  • 后臺管理
  • ...

部分截圖

  • 主界面


    image.png
  • 收到消息


    image.png
  • 聊天界面


    image.png
  • 添加好友


    image.png
  • 加入群


    image.png
  • 同意添加


    image.png
  • 群聊


    image.png
  • 消息盒子


    image.png
  • 聊天記錄


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啃炸,一起剝皮案震驚了整個(gè)濱河市铆隘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌南用,老刑警劉巖膀钠,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異裹虫,居然都是意外死亡肿嘲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門筑公,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雳窟,“玉大人,你說我怎么就攤上這事匣屡》饩龋” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵捣作,是天一觀的道長誉结。 經(jīng)常有香客問我,道長券躁,這世上最難降的妖魔是什么惩坑? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮嘱朽,結(jié)果婚禮上旭贬,老公的妹妹穿的比我還像新娘。我一直安慰自己搪泳,他們只是感情好稀轨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岸军,像睡著了一般奋刽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艰赞,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天佣谐,我揣著相機(jī)與錄音,去河邊找鬼方妖。 笑死狭魂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雌澄,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼斋泄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了镐牺?” 一聲冷哼從身側(cè)響起炫掐,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎睬涧,沒想到半個(gè)月后募胃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畦浓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年痹束,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宅粥。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡参袱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秽梅,到底是詐尸還是另有隱情,我是刑警寧澤剿牺,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布企垦,位于F島的核電站,受9級特大地震影響晒来,放射性物質(zhì)發(fā)生泄漏钞诡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一湃崩、第九天 我趴在偏房一處隱蔽的房頂上張望荧降。 院中可真熱鬧,春花似錦攒读、人聲如沸朵诫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剪返。三九已至,卻和暖如春邓梅,著一層夾襖步出監(jiān)牢的瞬間脱盲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工日缨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钱反,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像面哥,于是被迫代替她去往敵國和親哎壳。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • afinalAfinal是一個(gè)android的ioc幢竹,orm框架 https://github.com/yangf...
    passiontim閱讀 15,412評論 2 45
  • afinalAfinal是一個(gè)android的ioc耳峦,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,267評論 1 9
  • 環(huán)球貓王 2018-05-04 作者:柔情似水 我是一個(gè)兩個(gè)孩子的媽媽蹲坷,從2014年開始大批的微商出來,那...
    CUi柔情似水閱讀 453評論 0 0
  • 能做自己喜歡的事是莫大的幸福
    未來啟航閱讀 70評論 0 0
  • 東新城里花無果邑飒,葉落循签,奚雨窮加離人瑣。 月圓情人說疙咸,你錯(cuò)县匠,今此誰擔(dān)責(zé)? 愈加何患無辭措撒轮,陌陌乞旦,比肩亦錯(cuò)過! 話無益...
    五侯閱讀 231評論 0 1