mqtt的onWIFI32事件

void app.onWIFI32(int m){
    str s;
    int msgnum;
    msgnum=wifi_getinfo(2);
    /*  说明,正常时候建议使用 super.onWIFI32(m); 来处理mqtt等业务
    让mqtt 处理代码放在appbase中,在任何页面都可以相应mqtt消息;
    本例子中为防止mqtt干扰,因此放在页面处理中
    */
    if (m==7){
        //mqtt
        if (msgnum==1){
            //connect;
            m1.text=m1.text+"服务器已连接\r\n";
        }
        if (msgnum==6){
            //收到消息
            str topic;
            str data;
            int qos;
            topic=wifi_getinfo(23);
            data=wifi_getinfo(24);
            qos=wifi_getinfo(4);
            //---在此书写收到的mqtt消息处理
            s="topic:"+topic+"\r\ndata:"+data+"\r\nqos:"+qos+"\r\n";
            m1.text=m1.text+s;
            m1.rebuild();
        }
    }
}

由上面的onWIFI32事件代码我们可以看到 mqtt所有的消息事件都是在m==7 这个条件组中,而msgnum中将代表mqtt的各个事件,详见下表:

msgnum 内容 描述
1 MQTT_EVENT_CONNECTED 服务器已连接
2 MQTT_EVENT_DISCONNECTED 服务器已断开
3 MQTT_EVENT_SUBSCRIBED 订阅已成功(开启接收消息)
4 MQTT_EVENT_UNSUBSCRIBED 订阅已取消
5 MQTT_EVENT_PUBLISHED 消息已发布(发送消息成功)
6 MQTT_EVENT_DATA 接受到消息
7 MQTT_EVENT_ERROR 出现错误
备注