Microgear-java คือ client library ภาษา Java ที่ทำหน้าที่เป็นตัวกลางในการเชื่อมโยง application code หรือ hardware เข้ากับบริการของ netpie platform เพื่อการพัฒนา IOT application รายละเอียดเกี่ยวกับ netpie platform สามารถศึกษาได้จาก https://netpie.io
สามารถเรียกใช้เวอร์ชั่นล่าสุดจาก Maven ได้ดังนี้
<dependency>
<groupId>io.netpie</groupId>
<artifactId>microgear</artifactId>
<version>1.1.0</version>
</dependency>
import io.netpie.microgear.Microgear;
import io.netpie.microgear.MicrogearEventListener;
public class Example {
final static String appID = "appID";
final static String Key = "Key";
final static String Secret = "Secret";
static Microgear microgear;
static callback callback;
public static void main(String[] args) throws InterruptedException {
microgear = new Microgear();
callback = new callback();
microgear.SetCallback(callback);
microgear.Connect(appID, Key, Secret);
microgear.Subscribe("/Topic");
int count = 1;
for(;;){
microgear.Publish("/Topic", String.valueOf(count)+". Test message");
count++;
Thread.sleep(2000);
}
}
static class callback implements MicrogearEventListener{
@Override
public void onConnect() {
// TODO Auto-generated method stub
System.out.println("Microgear is Connected.");
//this.microgear.Publish("/chat", "Hello world#pppppp#qqqqq");
}
@Override
public void onMessage(String topic, String message) {
// TODO Auto-generated method stub
System.out.println(topic+" "+message);
}
@Override
public void onPresent(String token) {
// TODO Auto-generated method stub
System.out.println("Present "+token);
}
@Override
public void onAbsent(String token) {
// TODO Auto-generated method stub
System.out.println("Absent "+token);
}
@Override
public void onDisconnect() {
// TODO Auto-generated method stub
System.out.println("Microgear is Disconnect.");
}
@Override
public void onError(String error) {
// TODO Auto-generated method stub
System.out.println("Error "+error);
}
}
}
Connect(appID, Key, Secret);
arguments
- appID
string
- กลุ่มของ application ที่ microgear จะทำการเชื่อมต่อ - Key
string
- key สำหรับ gear ที่จะรัน ใช้ในการอ้างอิงตัวตนของ gear - Secret
string
- secret ของ key ซึ่งจะใช้ประกอบในกระบวนการยืนยันตัวตน
SetCallback(Callback);
arguments
- Callback
MicrogearEventListener
- event class.
SetAlias(Newalias) microgear สามารถตั้งนามแฝงของตัวเองได้ ซึ่งสามารถใช้เป็นชื่อให้คนอื่นเรียกในการใช้ฟังก์ชั่น chat() และชื่อที่ตั้งในโค้ด จะไปปรากฏบนหน้าจัดการ key บนเว็บ netpie.io อย่างอัตโนมัติ
arguments
- Newalias
string
– ชื่อของ microgear นี้
Chat(Name, Message); การส่งข้อความโดยเจาะจงผู้รับ
arguments
- Name
string
- ชื่อของ microgear ที่ต้องการจะส่งข้อความไปถึง - Message
string
– ข้อความ
Publish(Topic, Message, Retained); ในกรณีที่ต้องการส่งข้อความแบบไม่เจาะจงผู้รับ สามารถใช้ฟังชั่น publish ไปยัง topic ที่กำหนดได้ ซึ่งจะมีแต่ microgear ที่ subscribe topic นี้เท่านั้น ที่จะได้รับข้อความ
arguments
- Topic
string
- ชื่อของ topic ที่ต้องการจะส่งข้อความไปถึง - Message
string
– ข้อความ - Retained
Boolean
- ให้ retain ข้อความไว้หรือไม่ default เป็น false
Subscribe(Topic); microgear อาจจะมีความสนใจใน topic ใดเป็นการเฉพาะ เราสามารถใช้ฟังก์ชั่น Subscribe() ในการบอกรับ message ของ topic นั้นได้ และหาก topic นั้นเคยมีการ retain ข้อความไว้ microgear จะได้รับข้อความนั้นทุกครั้งที่ subscribe topic
arguments
- Topic
string
- ชื่อของ topic ที่ต้องการรับข้อความ
Unsubscribe(Topic); ยกเลิกการ subscribe
arguments
- Topic
string
- ชื่อของ topic ที่ต้องการยกเลิกการรับข้อความ
Disconnect(); ยกเลิกการเชื่อต่อ
resettoken(); สำหรับต้องการลบ Token ที่มีอยู่ ซึ่งจะทำการลบ Token ที่อยู่ภายใน cache และบน platform เมื่อลบแล้ว จำเป็นจะต้องขอ Token ใหม่ทุกครั้ง
wrtieFeed(Feedid, Data, Apikey): เขียนข้อมูลลง feed storage
arguments
- Feedid
string
- ชื่อของ feed ที่ต้องการจะเขียนข้อมูล - Data
string
– ข้อมูลที่จะบัน ในรูปแบบ string - Apikey
string
- apikey สำหรับตรวจสอบสิทธิ์ หากไม่กำหนด จะใช้ default apikey ของ feed ที่ให้สิทธิ์ไว้กับ AppID
application ที่รันบน microgear จะมีการทำงานในแบบ event driven คือเป็นการทำงานตอบสนองต่อ event ต่างๆ ด้วยการเขียน callback function ขึ้นมารองรับในลักษณะนี้
อีเว้นท์นี้จะเกิดขึ้นเมื่อ microgear library เชื่อมต่อกับ platform สำเร็จ
@Override
public void onConnect() {
// TODO Auto-generated method stub
System.out.println("Microgear is Connected.");
//this.microgear.Publish("/chat", "Hello world#pppppp#qqqqq");
}
อีเว้นท์นี้จะเกิดขึ้นเมื่อมี message เข้ามาพร้อมกับส่งผ่านข้อมูลเกี่ยวกับ message นั้นมาทาง argument ของ callback function
@Override
public void onMessage(String Topic, String Message) {
// TODO Auto-generated method stub
System.out.println(Topic+" "+Message);
}
arguments
- Topic
string
- หัวข้อของข้อความที่เข้ามา - Message
string
- ข้อความที่เข้ามา
อีเว้นท์นี้จะเกิดขึ้นเมื่อมี microgear ใน appid เดียวกัน online เข้ามาเชื่อมต่อ netpie
@Override
public void onPresent(String Name) {
// TODO Auto-generated method stub
System.out.println("Present "+Name);
}
arguments
- Name
string
- ชื่อของ microgear ใน appid เดียวกันที่ online
อีเว้นท์นี้จะเกิดขึ้นเมื่อมี microgear ใน appid เดียวกัน offline หายไป
@Override
public void onAbsent(String Name) {
// TODO Auto-generated method stub
System.out.println("Absent "+Name);
}
arguments
- Name
string
- ชื่อของ microgear ใน appid เดียวกันที่ offline
อีเว้นท์นี้จะเกิดขึ้นเมื่อ microgear library ตัดการเชื่อมต่อกับ platform
@Override
public void onDisconnect() {
// TODO Auto-generated method stub
System.out.println("Microgear is Disconnect.");
}
อีเว้นท์นี้จะเกิดขึ้นเมื่อมี error ขึ้นภายใน microgear
@Override
public void onError(String error) {
// TODO Auto-generated method stub
System.out.println("Error "+error);
}
arguments
- error
string
- ข้อความที่แสดง error
อีเว้นท์นี้จะเกิดขึ้นเมื่อมี info ขึ้นภายใน microgear
@Override
public void onInfo(String info) {
// TODO Auto-generated method stub
System.out.println("Info "+info);
}
arguments
- info
string
- ข้อความที่แสดง info