immusen/yii2-swoole-mqtt

基于swoole 4的Yii2 MQTT服务器,将主题解析为路由,反映到控制器/操作/参数,并支持redis pub/sub从您的Web应用程序触发异步任务

安装: 344

依赖项: 0

建议者: 0

安全: 0

星星: 18

关注者: 2

分支: 7

开放问题: 1

类型:yii2-extension

v1.5 2019-01-21 03:23 UTC

This package is auto-updated.

Last update: 2024-09-12 12:21:14 UTC


README

基于swoole 4的Yii2 MQTT服务器,将主题解析为路由,反映到控制器/操作/参数,并支持redis pub/sub从您的Web应用程序触发异步任务

安装

安装Yii2: Yii2.

安装swoole: swoole,推荐版本4+。

其他依赖项:php-redis扩展。

安装此扩展的首选方式是通过 composer

运行以下命令之一:

php composer.phar require --prefer-dist immusen/yii2-swoole-mqtt "~1.0"

"immusen/yii2-swoole-mqtt": "~1.0"

将其添加到您的 composer.json 文件的 require 部分中。

测试或使用

# after installation, cd project root path, e.g. cd yii2-advanced-project/
mv vendor/immusen/yii2-swoole-mqtt/example/mqtt ./
mv vendor/immusen/yii2-swoole-mqtt/example/mqtt-server ./
chmod a+x ./mqtt-server
# run:
./mqtt-server
# config :
cat ./mqtt/config/params.php
<?php
return [
    'listen' => 8721,
    'daemonize' => 0,
    'auth' => 1, // config auth class in ./main.php
];
# or coding in ./mqtt/controllers/

测试客户端:MQTTLens,MQTT.fx

示例

案例A:订阅/发布

1,mqtt客户端订阅主题:room/count/100011

2.1,mqtt客户端发布:每次发布主题:room/join/100011,订阅方将获得count+1,或者发布主题:room/leave/100011获得count-1。

2.2,redis客户端发布:每次 $redis->publish('async', 'room/join/100011'),订阅方将获得count+1,或者 $redis->publish('async', 'room/leave/100011') 获得count-1。

案例B:发布(通知或报告)

mqtt客户端发布主题:report/coord/100111 和负载:例如 110.12345678,30.12345678,0,85

编码

MQTT订阅主题:"channel/count/100001" 将在

    class ChannelController{
        public function actionCount($channel_id){
            echo "client {$this->fd} subscribed the count change of channel {$channel_id}";
        }
    }

//客户端1订阅了通道100001的计数变化

MQTT发布主题:"channel/join/100001" 带负载:"Foo" 将在

    class ChannelController{
        public function actionJoin($channel_id, $who){
            echo "{$who} join in channel {$channel_id}";
            #then broadcast update to all client who subscribed channel 100001
            #$this->publish($fds, $sub_topic, $count);
        }
    }

// Foo加入通道100001

MQTT

关于MQTT: MQTT版本3.1.1加勘误01

本项目MQTT 3.1.1的非完整实现,正在升级...