@walkor, 订阅主题需要实时监听可以启动后常驻内存守护进程运行这个没问题;发布publish我想根据后台业务需要发送主题,如何实现?
如果你的后台是用workerman的系列框架写的,那么你可以直接使用
$mqtt = new Workerman\Mqtt\Client('mqtt://test.mosquitto.org:1883'); $mqtt->onConnect = function($mqtt) { $mqtt->publish('test', 'hello workerman mqtt'); }; $mqtt->connect();
如果是其他或者fpm框架写的,可以使用第三方类库 例如:https://packagist.org/packages/php-mqtt/client
具体使用方法看文档即可
谢谢你的回答,我用其他框架中直接使用上面客户端直接连接是报错误的,好像是必须依托Woker进程启动后在连接成功;意思是我再使用php-mqtt库进行发布消息吗
是的,其他客户端不能用workerman,因为workerman是cli模式使用的,你其他框架是fpm的话使用不了
明白了,理论是能否通过一些操作,将fpm框架的产生的数据,推送Woker容器里,然后使用容器里的mqtt进行publish
你可以借助redis来实现,workerman通过自定义进行去获取redis里面的内容,但是这样不如你直接fpm去mqtt推送了
好的,非常感谢
那得看你用的服务器端是什么了,如果是emqx,有单独的api的
服务端是Emqx,emqx可以过api,进行publish发布消息吗?
自己查一下文档,有的
如果你的后台是用workerman的系列框架写的,那么你可以直接使用
如果是其他或者fpm框架写的,可以使用第三方类库
例如:https://packagist.org/packages/php-mqtt/client
具体使用方法看文档即可
谢谢你的回答,我用其他框架中直接使用上面客户端直接连接是报错误的,好像是必须依托Woker进程启动后在连接成功;意思是我再使用php-mqtt库进行发布消息吗
是的,其他客户端不能用workerman,因为workerman是cli模式使用的,你其他框架是fpm的话使用不了
明白了,理论是能否通过一些操作,将fpm框架的产生的数据,推送Woker容器里,然后使用容器里的mqtt进行publish
你可以借助redis来实现,workerman通过自定义进行去获取redis里面的内容,但是这样不如你直接fpm去mqtt推送了
好的,非常感谢
那得看你用的服务器端是什么了,如果是emqx,有单独的api的
服务端是Emqx,emqx可以过api,进行publish发布消息吗?
自己查一下文档,有的
好的,非常感谢