Swoft Web即時聊天實戰

基於Swoft構建的Web聊天應用

在這裏插入圖片描述

簡介

本項目是基於Swoft的練手項目,主要使用框架中的Http,WebSocket構建,用於新手熟悉Swoft框架。

環境要求

效果展示

很有意思的登錄頁

在這裏插入圖片描述

登陸首頁

用戶:程心,好友:三體

在這裏插入圖片描述

用戶:三體,好友:程心

在這裏插入圖片描述

聊天頁面

用戶:程心,好友:三體

在這裏插入圖片描述

功能

  • 用戶登陸退出功能(todo 註冊功能)
  • 登陸認證中間件
  • 同一用戶,打開多個窗口,可以實現聊天記錄同步接受,即支持多端登陸。
  • 好友列表(todo 新增好友功能)
  • WebSocket端已支持羣聊功能(todo Http端需要做邏輯和界面處理)

安裝

Composer 創建項目
$ composer create-project ohhink/swoft-im 
將.env.example複製成.env並配置對應參數
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
運行數據庫遷移命令
$ php bin/swoft migrate:up
添加模擬數據,也可以自己創建,主要是user用戶表和friend好友關係表
# 添加用戶
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);

# 添加好友關係
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);

啓動WebSocket和Http
$ php bin/swoft ws:start

# 熱更新啓動,適合開發使用
$ php swoftcli.phar run -c ws:start

使用

訪問對應地址,這裏假設ip爲192.168.10.10,端口爲18308,所以訪問地址爲
http://192.168.10.10:18308/login
# 賬號:user1
# 密碼123123
# 賬號:user2
# 密碼123123
注意,要在本機實現兩個客戶端間的通訊,需要使用兩個瀏覽器,或者開啓一個Chrome的匿名模式

維護者

@OhhInk.

如何貢獻

非常歡迎你的加入! 有任何問題或者想要貢獻代碼,請提交 issue

使用許可

MIT © OhhInk

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