PHPackages                             ohhink/swoft-im - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ohhink/swoft-im

ActiveProject[Utility &amp; Helpers](/categories/utility)

ohhink/swoft-im
===============

Swoft IM

1.0.3(6y ago)11311Apache-2.0PHPPHP &gt;7.1CI failing

Since Dec 5Pushed 6y ago1 watchersCompare

[ Source](https://github.com/ouhaohan8023/swoftIM)[ Packagist](https://packagist.org/packages/ohhink/swoft-im)[ RSS](/packages/ohhink-swoft-im/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (21)Versions (2)Used By (0)

基于Swoft构建的Web聊天应用
-----------------

[](#基于swoft构建的web聊天应用)

[![Php Version](https://camo.githubusercontent.com/c197ef1e57a32c886b2a54d02ead7dbc035f18b3f39a642703b9372eef7819f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d2533453d372e312d627269676874677265656e2e7376673f6d61784167653d32353932303030)](https://secure.php.net/)[![Swoole Version](https://camo.githubusercontent.com/564f71187a5d2961c75fa5b3c9c5c3c0d13e3d0b544426f5f89e954b5d45ff88/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73776f6f6c652d2533453d342e342e312d627269676874677265656e2e7376673f6d61784167653d32353932303030)](https://github.com/swoole/swoole-src)

[![start-http-server](https://camo.githubusercontent.com/13bf5407b123d0a69ba5c4b6596540ab04b5368f54a9392f95416be0eb773d51/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f382e706e67)](https://camo.githubusercontent.com/13bf5407b123d0a69ba5c4b6596540ab04b5368f54a9392f95416be0eb773d51/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f382e706e67)

简介
--

[](#简介)

本项目是基于Swoft的练手项目，主要使用框架中的Http，WebSocket构建，用于新手熟悉Swoft框架。

环境要求
----

[](#环境要求)

- [PHP 7.1+](https://github.com/php/php-src/releases)
- [Swoole 4.3.4+](https://github.com/swoole/swoole-src/releases)
- [Composer](https://getcomposer.org/)
- [MYSQL 5.7.24+](https://www.mysql.com/cn/downloads/)
- [Redis](https://redis.io/)

效果展示
----

[](#效果展示)

#### 很有意思的登录页

[](#很有意思的登录页)

[![登录页](https://camo.githubusercontent.com/5fbd854951e51319a0d49a0016cb1cee90c6cad82abd4aa014d66c3b71a6db9f/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f312e706e67)](https://camo.githubusercontent.com/5fbd854951e51319a0d49a0016cb1cee90c6cad82abd4aa014d66c3b71a6db9f/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f312e706e67)

#### 登陆首页

[](#登陆首页)

##### 用户：程心，好友：三体

[](#用户程心好友三体)

[![登陆首页](https://camo.githubusercontent.com/4b88b3faec3785963daa11c0c17815f9f425d8a2105271777832984bb9a0f59f/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f342e706e67)](https://camo.githubusercontent.com/4b88b3faec3785963daa11c0c17815f9f425d8a2105271777832984bb9a0f59f/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f342e706e67)

##### 用户：三体，好友：程心

[](#用户三体好友程心)

[![登陆首页](https://camo.githubusercontent.com/a51b65db362faea4299ed4bf68fab450ac7cf16704648f1bf5331d68d5dfd2fa/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f352e706e67)](https://camo.githubusercontent.com/a51b65db362faea4299ed4bf68fab450ac7cf16704648f1bf5331d68d5dfd2fa/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f352e706e67)

#### 聊天页面

[](#聊天页面)

##### 用户：程心，好友：三体

[](#用户程心好友三体-1)

[![登陆首页](https://camo.githubusercontent.com/881ad2b328b46d9a6328f35602b45ff23266ee0f0547c604e7b9f84c2a46711a/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f372e706e67)](https://camo.githubusercontent.com/881ad2b328b46d9a6328f35602b45ff23266ee0f0547c604e7b9f84c2a46711a/687474703a2f2f7069632e6f68682e696e6b2f73776f66742f372e706e67)

功能
--

[](#功能)

- 用户登陆退出功能（todo 注册功能）
- 登陆认证中间件
- 同一用户，打开多个窗口，可以实现聊天记录同步接受，即支持多端登陆。
- 好友列表（todo 新增好友功能）
- WebSocket端已支持群聊功能（todo Http端需要做逻辑和界面处理）

安装
--

[](#安装)

##### Composer 创建项目

[](#composer-创建项目)

```
$ composer create-project ohhink/swoft-im
```

##### 将.env.example复制成.env并配置对应参数

[](#将envexample复制成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好友关系表

[](#添加模拟数据也可以自己创建主要是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

[](#启动websocket和http)

```
$ php bin/swoft ws:start

# 热更新启动，适合开发使用
$ php swoftcli.phar run -c ws:start
```

使用
--

[](#使用)

##### 访问对应地址，这里假设ip为`192.168.10.10`，端口为`18308`，所以访问地址为

[](#访问对应地址这里假设ip为1921681010端口为18308所以访问地址为)

```
http://192.168.10.10:18308/login
# 账号：user1
# 密码123123
# 账号：user2
# 密码123123
```

##### 注意，要在本机实现两个客户端间的通讯，需要使用两个浏览器，或者开启一个Chrome的匿名模式

[](#注意要在本机实现两个客户端间的通讯需要使用两个浏览器或者开启一个chrome的匿名模式)

维护者
---

[](#维护者)

[@OhhInk](https://github.com/ouhaohan8023).

如何贡献
----

[](#如何贡献)

非常欢迎你的加入! 有任何问题或者想要贡献代码，请提交 issue

使用许可
----

[](#使用许可)

[MIT](LICENSE) © OhhInk

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2351d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/54025700740179725e05152c2b05eb32b2c33841cc7337cd1be0125749a1b6dd?d=identicon)[ohhink](/maintainers/ohhink)

---

Tags

phpswooleswoft

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ohhink-swoft-im/health.svg)

```
[![Health](https://phpackages.com/badges/ohhink-swoft-im/health.svg)](https://phpackages.com/packages/ohhink-swoft-im)
```

###  Alternatives

[swoft/swoft

Modern High performance AOP and Coroutine PHP Framework

5.6k34.5k](/packages/swoft-swoft)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
