php适合做MQTT服务器吗
https://github.com/swoole/mqtt-server/blob/master/server.phphttps://github.com/xavier-chen/swoole_mqtt_php/blob/master/swoole_server.php上面是两个基于Swoole的MQTT服务器例程,你可以参考下.
MQTT是一个基于TCP的协议,Swoole中显式开启支持MQTT支持(\u0026#39;open_mqtt_protocol\u0026#39; =\u0026gt; true)后,会解析MQTT包头,onReceive接受数据的事件中,每次会返回一个完整的MQTT数据包.https://wiki.swoole.com/wiki/page/727.htmlhttps://wiki.swoole.com/wiki/page/50.html
■网友
不要试图去做语言不适合的工作。
■网友
消息持久化,主题、生产者、消费者的状态保存,这些也得设计吧,不是光高并发就完了
■网友
感谢邀请,仅供参考。
搭建MQTT服务器,需要从并发量、服务器资源等情况考虑,只推荐在原型开发阶段使用php搭建,在正式产品上线后,使用其它语言编译成二进制执行,以优化总体性能。
建议:
原型阶段使用php搭建;正式上线使用其它语言,如C/C++再次重构以优化资源。
为了避免哪种语言最好的争论,这里说明一下:
不是哪种语言好,只是在当前时间、团队、服务器等资源下,哪种可以解决你的问题,选择一种最适合你的方案才是最好的
■网友
用ably之类的第三方服务多好,有PHP的库
■网友
请问您能分享出来代码么?
■网友
不适合。用EMQTT很好,目前版本很稳定,插件很多。
■网友
你是要用PHP把MQTT协议实现一遍吗?如果不是的话,可以试试swoole。
■网友
MQTT 是物联网的消息传送协议标准。
在 CentOS 7上常用的开源 MQTT 消息服务器就是 Mosquitto。
我们用 PECL 来安装 Mosquitto 的 PHP 实现。
首先要确保 php-devel 已经安装:
# yum install -y php-devel
然后确保 mosquitto-devel 也已经安装:
#yum install -y mosquitto-devel
再用 pecl 来安装 Mosquitto-PHP
# pecl install Mosquitto-alpha
【php适合做MQTT服务器吗】 然后去 /etc/php.ini 添加一行:
extension=mosquitto.so
重启 Apache后,运行 php -i|grep mosquitto 可以看到mosquittolibmosquitto version =\u0026gt; 1.4.13
表明 PHP 可以使用 mosquitto 的 MQTT 库了。
下面是用 PHP 来发送消息的示例代码 mosquitto-test.php:
\u0026lt;?php234 $c = new Mosquitto\\Client;56 $topic = \u0026#39;test\u0026#39;;7 $msg = \u0026#39;hello你好\u0026#39;;8 $qos = 2;910 $username = \u0026#39;username\u0026#39;;11 $password = \u0026#39;Passw0rd\u0026#39;;1213 $c-\u0026gt;setCredentials($username, $password);14 $c-\u0026gt;onConnect(function() use ($c) {15 global $topic,$msg,$qos;16 $c-\u0026gt;publish($topic, $msg, $qos);17 });1819 $host = \u0026#39;192.168.7.201\u0026#39;;2021 $c-\u0026gt;connect($host);22 for ($i = 0; $i \u0026lt; 100; $i++) {23 // Loop around to permit the library to do its work24 $c-\u0026gt;loop(1);25 }2627 echo "结束\";
然后运行 php mosqitto-test.php
另外开启一个终端,用
# mosquitto_sub -h 192.168.7.201 -u username -P Passw0rd -t test
可以看到 PHP 程序发送的消息: "hello你好".
■网友
Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持STOMP、AMQP、MQTT、Openwire、SSL和WebSockets等多种协议,并且Apollo提供后台管理页面,方便开发者管理和调试。
推荐阅读
- 适合家养的几款花卉,便宜又好养,阳台变温馨花园
- 喜欢养花必养的3种花,插叶子就能活,适合养花新手
- 最适合客厅摆放的15种大厅绿植,超大气漂亮
- 全民车市|男子报名考驾照,2月后被驾校劝退,你不适合开车
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 文案|适合十一月发朋友圈的心情文案2020只剩2个月
- 易车原创|谁更适合年轻人?长安欧尚X5对比哈弗F5
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 营销型外贸网站用哪种建站程序和语言比较好呢主要是适合优化,可扩展兼容性,安全性,后期网站扩展升级
- 环球车讯网|“面包车”大盘点!想要载客拉货,这几款可不容错过,适合老百姓
