Skip to content

ecolight15/EcoMQTT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EcoMQTT

spigot plugin mqtt interface

MQTTで適当なブローカーとおしゃべり よき

他のプラグインからこのプラグインを中継してMQTT pub/subする場合

  • MQTTControllerがpublish実行/subscribeハンドラ登録するクラスなので以下のようなMQTTReceiverインタフェース実装したクラスを作る。
package jp.minecraftuser.ecomqtt.commands;

import jp.minecraftuser.ecomqtt.io.MQTTController;
import jp.minecraftuser.ecomqtt.io.MQTTReceiver;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;

/**
 * MQTTサブスクライブ受信ハンドラ/パブリッシュ制御クラス
 * @author ecolight
 */
public class EcoMQTTCommandController extends MQTTController implements MQTTReceiver {
    CommandSender sender;
    public EcoMQTTCommandController(Plugin plg_, CommandSender sender_) {
        super(plg_);
        sender = sender_;
    }

    @Override
    public void handler(String topic, byte[] payload) {
        sender.sendMessage("topic[" + topic + "] payload[" + new String(payload) + "]");
    }
}
  • publishするとき
EcoMQTTCommandController rec = new EcoMQTTCommandController(plg);
rec.publish("topic", "message".getBytes());
  • subscribeするとき
rec.registerReceiver("topic", rec, true);

詳しくは jp.minecraftuser.ecomqtt.commands あたりのソースコード参照


メモ

  • EcoFrameworkプラグイン前提
  • キューに貯めて非同期でpublishしてるけど、コネクション数節約のために順次送信なので遅い(件数×ping時間なイメージ)。
  • 自分用なので細かいところは割愛

About

spigot plugin mqtt interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages