MQTTはプロトコル上、型という概念がありません。
文字列、もしくはバイト配列に変換してからパブリッシュし、サブスクライバ側でint型に戻すようにしてください。
サブスクライバ側との合意が必要です。
パブリッシャ側:
Java
1// 1. 文字列に変換して渡す
2client.publish("/example", String.valueOf(xVal));
3
4// 2. バイト配列に変換して渡す
5// client.publish("/example", ByteBuffer.allocate(4).putInt(xVal).array());
6
サブスクライバ側:
Java
1public void messageArrived(String topic, MqttMessage message) throws Exception {
2
3 // 1. 文字列で渡されたペイロードを整数値に変換
4 int xVal = Integer.parseInt(new String(message.getPayload()));
5
6 // 2. バイト配列にして渡されたペイロードを整数値に変換
7 // int xVal = ByteBuffer.wrap(message.getPayload()).getInt();
8
9}
複数の整数を渡したい場合もカンマなどに区切るなどして文字列として渡し、同様にサブスクライバ側で分解し整数値に戻してください。
Java
1client.publish("/example", xVal + "," + yVal + "," + zVal);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/07 23:49