• Stars
    star
    203
  • Rank 192,890 (Top 4 %)
  • Language
    PHP
  • Created over 6 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Asynchronous MQTT client for PHP based on workerman.

MQTT

Asynchronous MQTT client for PHP based on workerman.

Installation

composer require workerman/mqtt

文档

中文文档

Example

subscribe.php

<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
$worker = new Worker();
$worker->onWorkerStart = function(){
    $mqtt = new Workerman\Mqtt\Client('mqtt://test.mosquitto.org:1883');
    $mqtt->onConnect = function($mqtt) {
        $mqtt->subscribe('test');
    };
    $mqtt->onMessage = function($topic, $content){
        var_dump($topic, $content);
    };
    $mqtt->connect();
};
Worker::runAll();

Run with command php subscribe.php start

publish.php

<?php
require __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
$worker = new Worker();
$worker->onWorkerStart = function(){
    $mqtt = new Workerman\Mqtt\Client('mqtt://test.mosquitto.org:1883');
    $mqtt->onConnect = function($mqtt) {
       $mqtt->publish('test', 'hello workerman mqtt');
    };
    $mqtt->connect();
};
Worker::runAll();

Run with command php publish.php start

API


__construct (string $address, [array $options])

Create an instance by $address and $options.

  • $address can be on the following protocols: 'mqtt', 'mqtts', 'mqtt://test.mosquitto.org:1883'.

  • $options is the client connection options. Defaults:

    • keepalive: 50 seconds, set to 0 to disable
    • client_id: client id, default workerman-mqtt-client-{$mt_rand}
    • protocol_name: 'MQTT' or 'MQIsdp'
    • protocol_level: 'MQTT' is 4 and 'MQIsdp' is 3
    • clean_session: true, set to false to receive QoS 1 and 2 messages while offline
    • reconnect_period: 1 second, interval between two reconnections
    • connect_timeout: 30 senconds, time to wait before a CONNACK is received
    • username: the username required by your broker, if any
    • password: the password required by your broker, if any
    • will: a message that will sent by the broker automatically when the client disconnect badly. The format is:
      • topic: the topic to publish
      • content: the message to publish
      • qos: the QoS
      • retain: the retain flag
    • resubscribe : if connection is broken and reconnects, subscribed topics are automatically subscribed again (default true)
    • bindto default '', used to specify the IP address that PHP will use to access the network
    • ssl default false, it can be set true or ssl context see http://php.net/manual/en/context.ssl.php
    • debug default false, set true to show debug info

connect()

Connect to broker specified by the given $address and $options in __construct($address, $options).


publish(String $topic, String $content, [array $options], [callable $callback])

Publish a message to a topic

  • $topic is the topic to publish to, String
  • $message is the message to publish, String
  • $options is the options to publish with, including:
    • qos QoS level, Number, default 0
    • retain retain flag, Boolean, default false
    • dup mark as duplicate flag, Boolean, default false
  • $callback - function (\Exception $exception), fired when the QoS handling completes, or at the next tick if QoS 0. No error occurs then $exception will be null.

subscribe(mixed $topic, [array $options], [callable $callback])

Subscribe to a topic or topics

  • $topic is a String topic or an Array which has as keys the topic name and as value the QoS like array('test1'=> 0, 'test2'=> 1) to subscribe.
  • $options is the options to subscribe with, including:
    • qos qos subscription level, default 0
  • $callback - function (\Exception $exception, array $granted) callback fired on suback where:
    • exception a subscription error or an error that occurs when client is disconnecting
    • granted is an array of array('topic' => 'qos', 'topic' => 'qos') where:
      • topic is a subscribed to topic
      • qos is the granted qos level on it

unsubscribe(mixed $topic, [callable $callback])

Unsubscribe from a topic or topics

  • $topic is a String topic or an array of topics to unsubscribe from
  • $callback - function (\Exception $e), fired on unsuback. No error occurs then $exception will be null..

disconnect()

Send DISCONNECT package to broker and close the client.


close()

Close the client without DISCONNECT package.


callback onConnect(Client $mqtt)

Emitted on successful connection (CONNACK package received).


callback onMessage(String $topic, String $content, Client $mqtt)

function (topic, message, packet) {}

Emitted when the client receives a publish packet

  • $topic topic of the received packet
  • $content payload of the received packet
  • $mqtt Client instance.

callback onError(\Exception $exception)

Emitted when something wrong for example the client cannot connect broker.


callback onClose()

Emitted when connection closed.


License

MIT

More Repositories

1

workerman

An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols.
PHP
11,067
star
2

phpsocket.io

A server side alternative implementation of socket.io in PHP based on workerman.
PHP
2,284
star
3

webman

Probably the fastest PHP web framework in the world.
PHP
2,126
star
4

workerman-todpole

HTML5+WebSocket+PHP(Workerman) , rumpetroll server writen using php
PHP
1,844
star
5

workerman-chat

Websocket chat room written in PHP based on workerman.
PHP
1,185
star
6

GatewayWorker

Distributed realtime messaging framework based on workerman.
PHP
1,007
star
7

web-msg-sender

Web message pusher written in PHP based on workerman.
PHP
922
star
8

live-camera

Live camera based on HTML5+Canvas+Websocket+PHP (Workerman).
PHP
458
star
9

BrowserQuest-PHP

BrowserQuest server in PHP base on workerman. A PHP/HTML5/JavaScript multiplayer game experiment.
PHP
376
star
10

workerman-statistics

一个分布式统计监控系统 包含PHP客户端 、服务端
PHP
350
star
11

GatewayClient

Sdk For GatewayWorker
PHP
334
star
12

workerman-thrift

Thrift RPC for php based on workerman.
PHP
274
star
13

workerman-jsonrpc

workerman作为进程管理器,json作为协议的远程服务调用的框架
PHP
251
star
14

workerman-webrtc

php webrtc demo based on workerman
JavaScript
251
star
15

live-ascii-camera

利用HTML5将摄像头视频转换为ascii字符,通过websocket实时传输给其它页面。服务端使用workerman
PHP
215
star
16

php-socks5

socks5 proxy written in PHP based on workerman.
PHP
208
star
17

php-http-proxy

HTTP proxy written in PHP based on workerman.
PHP
201
star
18

phptty

Share your terminal as a web application. PHP terminal emulator based on workerman.
PHP
173
star
19

workerman-vmstat

在浏览器里面显示以更友好的方式实时显示vmstats信息,包括内存、IO、cpu等信息
PHP
160
star
20

channel

Interprocess communication component for workerman
PHP
136
star
21

workerman-flappy-bird

flappy bird 多人在线版
PHP
119
star
22

webman-framework

webman-framework
PHP
116
star
23

workerman-for-win

workerman 3.x windows 版本(目前linux版本已经兼容windows,此版本不再维护)
PHP
109
star
24

workerman-queue

workerman 消息队列
PHP
107
star
25

GlobalData

进程间变量共享组件,用于分布式数据共享
PHP
73
star
26

workerman-todpole-web

小蝌蚪互动聊天室-适合虚拟空间使用(后端直接与workerman主机通讯。请保留页面上workerman的相关链接)
JavaScript
73
star
27

workerman-filemonitor

监控文件更新并自动reload workerman
PHP
67
star
28

workerman-manual

Workerman manual
PHP
65
star
29

crontab

A crontab written in PHP based on workerman
PHP
60
star
30

mysql

Long-living MySQL connection for daemon.
PHP
55
star
31

workerman-chat-for-win

workerman-chat windows版本
PHP
48
star
32

http-client

Asynchronous http client for PHP based on workerman.
PHP
47
star
33

rabbitmq

Asynchronous rabbitmq client for PHP based on workerman.
PHP
35
star
34

redis-queue

Message queue system written in PHP based on workerman and backed by Redis.
PHP
35
star
35

workerman-todpole-for-win

workerman-todpole-for-win
PHP
25
star
36

workerman.net

workerman.net主页源代码
PHP
25
star
37

phpsocket.io-emitter

PHP
23
star
38

workerman-MT

workerman多线程版本,同时支持Linux平台与Windows平台,接口与原Linux多进程版本兼容
PHP
22
star
39

redis

Asynchronous redis client for PHP based on workerman.
PHP
18
star
40

workerman-filemonitor-inotify

workerman文件监控并自动reload inotify版本
PHP
17
star
41

workerman-manual-zh

workerman中文手册
17
star
42

web-msg-sender-for-win

web-msg-sender for win
PHP
17
star
43

GatewayWorker-for-win

GatewayWorker for windows.
PHP
16
star
44

global-timer

Distributed timer for workerman.
PHP
15
star
45

phpsocket.io-for-win

PHP
12
star
46

webserver-example

PHP
10
star
47

stomp

Asynchronous Stomp client for PHP based on workerman.
PHP
8
star
48

tcp-proxy-demo

一个tcp代理服务器的demo
PHP
8
star
49

en.workerman.net

en.workerman.net
PHP
4
star
50

workerman-teach

PHP
4
star
51

gateway-doc

GatewayWorker manual
3
star