takielias/codeigniter4-websocket

使用 Ratchet Websocket 技术为 CodeIgniter 4 实现的 WebSocket

2.0 2024-01-03 15:40 UTC

This package is auto-updated.

Last update: 2024-09-03 17:03:27 UTC


README

Latest Version on Packagist Total Downloads Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

CodeIgniter 4 WebSocket 库

takielias

CodeIgniter WebSocket 库。它允许您通过使用 Ratchet Socketo.me WebSocket 技术来创建强大的实时应用程序。

Codeigniter 3.x 的 WebSocket 库 https://github.com/takielias/codeigniter-websocket

目录

入门

这是一个在本地设置项目的示例。要运行本地副本,请按照以下简单的示例步骤进行。

先决条件

  • PHP 7.2+
  • CodeIgniter 框架 (推荐 4.*)
  • Composer
  • PHP sockets 扩展已启用

安装

composer require takielias/codeigniter4-websocket @dev

发布资源

您需要发布默认配置的资源

php spark websocket:publish

用法

首先启动 CodeIgniter

php spark serve

如果您在不同的端口上运行服务器,请按照以下命令进行。

PHP spark serve --port=9092

最后启动 WebSocket 服务器

php public/index.php Websocket start

注意:不要忘记在 app/Config/Routes.php 中添加以下行 app/Config/Routes.php

$routes->setAutoRoute(true);

哇!你做到了!!! ✔️

在以下 URL 中打开您项目的两个页面,并使用不同的 ID

对于默认端口 https://:8080/Websocket/user/1 https://:8080/Websocket/user/2

对于自定义端口 https://:9092/Websocket/user/1 https://:9092/Websocket/user/2

身份验证和回调

有几个预定义的回调,以下是列表

auth, event, close, citimer, roomjoin, roomleave, roomchat

请查看 Websocket.php 控制器以获取各种回调函数的定义示例

    public function start()
    {
        $ws = service('CodeigniterWebsocket');
        $ws->set_callback('auth', array($this, '_auth'));
        $ws->set_callback('event', array($this, '_event'));
        $ws->run();
    }

    public function _auth($datas = null)
    {
        // Here you can verify everything you want to perform user login.

        return (!empty($datas->user_id)) ? $datas->user_id : false;
    }

    public function _event($datas = null)
    {
        // Here you can do everything you want, each time message is received 
        echo 'Hey ! I\'m an EVENT callback' . PHP_EOL;
    }

在上面的示例中定义了两个回调函数。第一个是 auth,第二个是 event

🔨🔨🔨如果您需要自定义回调函数,请检查您配置目录中的 CodeigniterWebsocker.php 配置文件。

路线图

查看 公开问题 以获取建议功能(以及已知问题)的列表。

贡献

贡献使开源社区成为一个如此令人惊叹的学习、灵感和创造的地方。您所做的任何贡献都将受到 高度赞赏

  1. 分支项目
  2. 创建您的功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个拉取请求

许可

在 MIT 许可证下分发。有关更多信息,请参阅 LICENSE

联系方式

Taki Elias - @takiele - https://ebuz.xyz - taki.elias@gmail.com

致谢

在 Buy Me A Coffee 上提供支持

嘿,伙计!帮我买杯☕!

takielias