在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:imi-mqtt开源软件地址:https://gitee.com/imiphp/imi-mqtt开源软件介绍:imi-mqtt介绍在 imi 框架中开发 MQTT 服务端,并且内置了一个 MQTT 客户端。 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。 Composer本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 { "require": { "imiphp/imi-mqtt": "^1.0.0" }} 然后执行 使用说明
项目配置文件: [ 'components' => [ 'MQTT' => 'Imi\MQTT', ],] MQTT 通讯数据包类
类名一般是 如: MQTT 服务开发首先,服务器配置的 控制器需要继承 如果你是主服务器,配置如下: 'mainServer' => [ 'namespace' => 'ImiApp\MQTTServer', 'type' => 'MQTT', 'host' => '127.0.0.1', 'port' => 8081, 'controller' => \ImiApp\MQTTServer\Controller\MQTTController::class, // 'configs' => [ // // 启用 MQTTS 配置证书 // 'ssl_cert_file' => dirname(__DIR__) . '/ssl/server.crt', // 'ssl_key_file' => dirname(__DIR__) . '/ssl/server.key', // ],], 如果你是子服务器,配置如下下: // 子服务器(端口监听)配置'subServers' => [ 'xxxServer' => [ 'namespace' => 'ImiApp\MQTTServer', 'type' => 'MQTT', 'host' => '127.0.0.1', 'port' => 8081, 'controller' => \ImiApp\MQTTServer\Controller\MQTTController::class, // 'configs' => [ // // 启用 MQTTS 配置证书 // 'ssl_cert_file' => dirname(__DIR__) . '/ssl/server.crt', // 'ssl_key_file' => dirname(__DIR__) . '/ssl/server.key', // ], ],], 在控制器方法中返回一个包对象,代表响应当前请求。 同样支持 MQTT 客户端开发事件监听类: <?phpnamespace Imi\MQTT\Test;use Imi\MQTT\Client\Contract\IMQTTClientListener;class TestClientListener implements IMQTTClientListener{ /** * 连接确认 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\ConnectResponsePacket $packet * @return void */ public function connectACK(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\ConnectResponsePacket $packet) { } /** * 发布 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PublishRequestPacket $packet * @return void */ public function publish(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PublishRequestPacket $packet) { } /** * 发布确认 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PublishAckPacket $packet * @return void */ public function publishAck(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PublishAckPacket $packet) { } /** * 发布已收到(保证交付部分1) * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PublishReceivedPacket $packet * @return void */ public function publishReceived(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PublishReceivedPacket $packet) { } /** * 发布释放(确保交付的第2部分) * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PublishReleasePacket $packet * @return void */ public function publishRelease(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PublishReleasePacket $packet) { } /** * 发布完成(保证交付的第3部分) * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PublishCompletePacket $packet * @return void */ public function publishComplete(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PublishCompletePacket $packet) { } /** * 订阅确认 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\SubscribeResponsePacket $packet * @return void */ public function subscribeACK(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\SubscribeResponsePacket $packet) { } /** * 取消订阅确认 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\UnsubscribeResponsePacket $packet * @return void */ public function unsubscribeACK(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\UnsubscribeResponsePacket $packet) { } /** * Ping 响应 * * @param \Imi\MQTT\Client\MQTTClient $client * @param \BinSoul\Net\Mqtt\Packet\PingResponsePacket $packet * @return void */ public function ping(\Imi\MQTT\Client\MQTTClient $client, \BinSoul\Net\Mqtt\Packet\PingResponsePacket $packet) { }} 客户端调用: use Imi\MQTT\Client\MQTTClient;$client = new MQTTClient([ 'host' => '127.0.0.1', 'port' => 8081,], new TestClientListener);$client->wait(); // 开始循环接收,直到关闭连接 客户端参数表:
will 遗嘱消息参数表:
免费技术支持运行环境版权信息
捐赠开源不求盈利,多少都是心意,生活不易,随缘随缘…… |
请发表评论