Stack ไทย IoT
MQTT Broker
Broker:
www.stackthai.net
TCP Port (TLS):
8883
Web Socket Port (WSS):
8084
Your IP:
100.25.42.117
StackThai MQTT
Javascript Client Example
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js" type="text/javascript"></script>
<script type="text/javascript">   // Create a client instance
  var client_id="StackThai_" + parseInt(Math.random() * 10010);
  client = new Paho.MQTT.Client("www.stackthai.net"8083,client_id);

  // set callback handlers
  client.onConnectionLost = onConnectionLost;
  client.onMessageArrived = onMessageArrived;
  var options = {
    useSSL: false,
    userName: "",
    password: "",
    onSuccess:onConnect,
    onFailure:doFail
  }

  // connect the client
  client.connect(options);

  // called when the client connects
  function onConnect() {
    // Once a connection has been made, make a subscription and send a message.
    console.log("onConnect");
    client.subscribe("/StackThaiMQTT");
    message = new Paho.MQTT.Message("Hello StackThaiMQTT");
    message.destinationName = "/StackThaiMQTT";
    client.send(message);
  }

  function doFail(e){
    console.log(e);
  }

  // called when the client loses its connection
  function onConnectionLost(responseObject) {
    if (responseObject.errorCode !== 0) {
      console.log("onConnectionLost:"+responseObject.errorMessage);
    }
  }

  // called when a message arrives
  function onMessageArrived(message) {
    console.log("onMessageArrived:"+message.payloadString);
  }
</script>
PHP Client Example
publish.php
<?php
require("phpMQTT.php");
$server="www.stackthai.net";
$port = 1883;
$client_id = "phpMQTT-publisher001"// make sure this is unique for connecting to sever - you could use uniqid()
$mqtt = new phpMQTT($server$port$client_id);
if ($mqtt->connect(trueNULL$username$password)) {
$mqtt->publish("/StackThaiMQTT""Hello World! From PHP", 0);
$mqtt->close();
else {
    echo "Time out!\n";
}
?>

subscribe.php
<?php
require("phpMQTT.php");
$server="www.stackthai.net";
$port = 1883;
$client_id = "phpMQTT-publisher001"// make sure this is unique for connecting to sever - you could use uniqid()
$topic="/StackThaiMQTT";
$mqtt = new phpMQTT($server$port$client_id);
if(!$mqtt->connect(trueNULL$username$password)) {
exit(1);
}
$topics[$topic] = array("qos" => 0, "function" => "procmsg");
$mqtt->subscribe($topics, 0);
while($mqtt->proc()){
       sleep(1);
}
$mqtt->close();
function procmsg($topic$msg){
echo "Msg Recieved: " . date("r") . "\n";
echo "Topic: {$topic}\n\n";
echo "\t{$msg}\n\n";
}
?>
Remark: Require php 5.4 up; Download "phpMQTT.php"
Java Client Example
MqttPublishSample.java
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MqttPublishSample {

    public static void main(String[] args) {

        String topic        = "/StackThaiMQTT";
        String content      = "Message from MqttPublishSample.java";
        int qos             = 2;
        String broker       = "tcp://www.stackthai.net:1883";
        String clientId     = "JavaPubSample";
        String userName     = "";
        char[] password     = "".toCharArray();
        MemoryPersistence persistence = new MemoryPersistence();

        try {
            MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
            MqttConnectOptions connOpts = new MqttConnectOptions();
            connOpts.setCleanSession(true);
            connOpts.setUserName(userName);
            connOpts.setPassword(password);
            System.out.println("Connecting to broker: "+broker);
            sampleClient.connect(connOpts);
            System.out.println("Connected");
            System.out.println("Publishing message: "+content);
            MqttMessage message = new MqttMessage(content.getBytes());
            message.setQos(qos);
            sampleClient.publish(topic, message);
            System.out.println("Message published");
            sampleClient.disconnect();
            System.out.println("Disconnected");
            System.exit(0);
        } catch(MqttException me) {
            System.out.println("reason "+me.getReasonCode());
            System.out.println("msg "+me.getMessage());
            System.out.println("loc "+me.getLocalizedMessage());
            System.out.println("cause "+me.getCause());
            System.out.println("excep "+me);
            me.printStackTrace();
        }
    }
}

MqttSubscribeSample.java
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

public class MqttSubscribeSample {

    public static void main(String[] args) {

        String topic        = "/StackThaiMQTT";
        int qos             = 2;
        String broker       = "tcp://www.stackthai.net:1883";
        String clientId     = "JavaSubSample";
        String userName     = "";
        String password     = "";
        MemoryPersistence persistence = new MemoryPersistence();

        try {
            MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
            MqttConnectOptions connOpts = new MqttConnectOptions();
            connOpts.setCleanSession(true);
            connOpts.setUserName(userName);
            connOpts.setPassword(password.toCharArray());
            sampleClient.setCallback(new MqttCallbackSample());
            System.out.println("Connecting to broker: "+broker);
            sampleClient.connect(connOpts);
            System.out.println("Connected");
            System.out.println("Subscribing topic : "+topic);
            sampleClient.subscribe(topic);
            System.out.println("topic subscribed");

            try {
              while(true){
                Thread.currentThread().sleep(10000);
              }
            } catch (Exception e) {
                e.printStackTrace();
            }

            sampleClient.unsubscribe(topic);
            System.out.println("Unsubscribed");
            sampleClient.disconnect();
            System.out.println("Disconnected");
            System.exit(0);
        } catch(MqttException me) {
            System.out.println("reason "+me.getReasonCode());
            System.out.println("msg "+me.getMessage());
            System.out.println("loc "+me.getLocalizedMessage());
            System.out.println("cause "+me.getCause());
            System.out.println("excep "+me);
            me.printStackTrace();
        }
    }

    private static class MqttCallbackSample implements MqttCallback {
        public void connectionLost(Throwable cause) {
            cause.printStackTrace();
        }

        public void deliveryComplete(IMqttDeliveryToken token) {
            System.out.println("Token has been delivered: "+token.toString());
        }

        public void messageArrived(String topic, MqttMessage message) {
            System.out.println("Message arrived: "+message+", topic: "+message);
        }
    }
}
Remark: Require import org.eclipse.paho.client.mqttv3.*; Download "org.eclipse.paho.client.mqttv3-1.2.1.jar"
Python Client Example
mqttPublish.py
import paho.mqtt.client as paho
broker="www.stackthai.net"
port=1883
def on_publish(client,userdata,result):
    print("data published \n")
    pass
client1= paho.Client("python1")
client1.on_publish = on_publish
client1.connect(broker,port)
ret= client1.publish("/StackThaiMQTT","Hi, it's me Python")

mqttSubscribe.py
import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))

    client.subscribe("/StackThaiMQTT")

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect("www.stackthai.net", 1883, 60)
client.loop_forever()
Remark: Require "paho.mqtt.client"; Run update $pip install paho-mqtt
StackThai Mikrotik Cloud Billing
ระบบบริหารจัดการ Mikrotik ออนไลน์ เปลี่ยนเน็ตบ้านเป็นเงินได้ง่ายๆ ที่นี่เร็วๆ นี้
mqtt client | radius client | postME | QR code | tesseract OCR