Swoft Web即時(shí)聊天實(shí)戰(zhàn)

基于Swoft構(gòu)建的Web聊天應(yīng)用

在這里插入圖片描述

簡(jiǎn)介

本項(xiàng)目是基于Swoft的練手項(xiàng)目,主要使用框架中的Http,WebSocket構(gòu)建,用于新手熟悉Swoft框架。

環(huán)境要求

效果展示

很有意思的登錄頁(yè)

在這里插入圖片描述

登陸首頁(yè)

用戶:程心,好友:三體
在這里插入圖片描述
用戶:三體,好友:程心
在這里插入圖片描述

聊天頁(yè)面

用戶:程心,好友:三體
在這里插入圖片描述

功能

  • 用戶登陸退出功能(todo 注冊(cè)功能)
  • 登陸認(rèn)證中間件
  • 同一用戶,打開(kāi)多個(gè)窗口,可以實(shí)現(xiàn)聊天記錄同步接受,即支持多端登陸。
  • 好友列表(todo 新增好友功能)
  • WebSocket端已支持群聊功能(todo Http端需要做邏輯和界面處理)

安裝

Composer 創(chuàng)建項(xiàng)目
$ composer create-project ohhink/swoft-im 
將.env.example復(fù)制成.env并配置對(duì)應(yīng)參數(shù)
APP_DEBUG=0
SWOFT_DEBUG=0

REDIS_ONLINE_USER=online-user
REDIS_HOST=127.0.0.1
REDIS_PORT=6379

DATABASE_HOST=192.168.10.10
DATABASE_USERNAME=homestead
DATABASE_PASSWORD=secret
DATABASE_TABLE=swoft
DATABASE_CHARSET=utf8mb4
運(yùn)行數(shù)據(jù)庫(kù)遷移命令
$ php bin/swoft migrate:up
添加模擬數(shù)據(jù),也可以自己創(chuàng)建,主要是user用戶表和friend好友關(guān)系表
# 添加用戶
INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (1, '程心', 'user1', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar2.jpg', 0, NULL, NULL);
INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (2, '三體', 'user2', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar1.jpg', 0, NULL, NULL);

# 添加好友關(guān)系
INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (1, 1, 2, NULL, NULL);
INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (2, 2, 1, NULL, NULL);

啟動(dòng)WebSocket和Http
$ php bin/swoft ws:start

# 熱更新啟動(dòng),適合開(kāi)發(fā)使用
$ php swoftcli.phar run -c ws:start

使用

訪問(wèn)對(duì)應(yīng)地址,這里假設(shè)ip為192.168.10.10,端口為18308,所以訪問(wèn)地址為
http://192.168.10.10:18308/login
# 賬號(hào):user1
# 密碼123123
# 賬號(hào):user2
# 密碼123123
注意,要在本機(jī)實(shí)現(xiàn)兩個(gè)客戶端間的通訊,需要使用兩個(gè)瀏覽器,或者開(kāi)啟一個(gè)Chrome的匿名模式

維護(hù)者

@OhhInk.

如何貢獻(xiàn)

非常歡迎你的加入! 有任何問(wèn)題或者想要貢獻(xiàn)代碼,請(qǐng)?zhí)峤?issue

使用許可

MIT ? OhhInk

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 參考資料 Swoole文檔中心 https://wiki.swoole.com/ Swoft官方文檔 https:...
    JunChow520閱讀 2,226評(píng)論 2 6
  • 簡(jiǎn)單的寫寫程序邏輯。 緣由 因網(wǎng)站需求,要一個(gè)Web版的聊天程序,前端方面選擇了LayIM,只購(gòu)買了前端程序,后臺(tái)...
    LnEoi閱讀 5,713評(píng)論 1 6
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,653評(píng)論 1 32
  • 點(diǎn)擊查看原文 Web SDK 開(kāi)發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,311評(píng)論 0 15
  • 本文在我的網(wǎng)站持續(xù)更新,查看最新版本請(qǐng)?jiān)L問(wèn)https://www.itshutong.com/articles/1...
    閑睡貓閱讀 34,564評(píng)論 3 30

友情鏈接更多精彩內(nèi)容