私はPubnubを実行するためにJava(Processing経由)を使用しており、埋め込まれたJavascript EONグラフと統合しようとしています。コンソールに公開されている値(私は個別の購読専用スクリプトでチェックしています)を取得していますが、私はEONデータを取得しません。私はこれがフォーメーション化と関係していることはほぼ確信していますが、総損失であります。PONNUB経由のEONチャートの書式設定
を私は正しいフォーマットにそれを取得しようとする私の埋め込まれたJavaScriptでtransform
コマンドを使用して試してみました:ここ
は、私がしようとしているものです。私は完全にはどの形式を理解していないtransform
が、私は値の文字列、intとして、私自身の書式設定されたJSON形式の文字列を試してみました。公開ストリームhereを使用して、埋め込みコードが動作していることをテストしました。そしてそれは!!!今私はそのコードへの入力を複製する処理スクリプトを取得しようとしています。私の現在の試みは以下の通りです。あなたが見ることができるように、私は正確に出版されているメッセージをコピーしようとしました。現在、埋め込みコードはタイムスタンプのみを取得します。 IEでは、x軸に値を設定し、新しいパブリッシュを取得すると更新しますが、データはプロットされません。私はこれが書式設定の問題だと確信しています、私はちょうど他に何を試みるか分からない。
import com.pubnub.api.*;
import org.json.*;
import java.util.*;
Pubnub pubnub = new Pubnub("pub-c-ca3babb0-c900-4a8e-9524-fc2ae26847da", "sub-c-d0682e0e-04e9-11e6-a8fd-02ee2ddab7fe");
void setup()
{
try {
pubnub.subscribe("NSFPhaseII", new Callback() {
@Override
public void connectCallback(String channel, Object message) {
pubnub.publish("NSFPhaseII", "Hello from the PubNub Java SDK", new Callback() {});
}
@Override
public void disconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
@Override
public void errorCallback(String channel, PubnubError error) {
System.out.println("SUBSCRIBE : ERROR on channel " + channel
+ " : " + error.toString());
}
}
);
}
catch (PubnubException e) {
System.out.println(e.toString());
}
}
void draw() {
Date TimeStamp = new Date();
long current = TimeStamp.getTime()/1000; //
//String m = "{\"ambient_temperature\":\"10\",\"radiation_level\":\"15\",\"humidity\":\"30\",\"sensor_uuid\":\"probe-dff03902\",\"photosensor\":\"39\",\"timestamp\":"+str(current)+"}";
String m = "{ambient_temperature:'10',radiation_level:'15',humidity:'30',sensor_uuid:'probe-dff03902',photosensor:'39',timestamp:"+str(current)+"}";
println(m);
Callback callback = new Callback() {
public void successCallback(String channel, Object response) {
System.out.println(response.toString());
}
public void errorCallback(String channel, PubnubError error) {
System.out.println(error.toString());
}
};
pubnub.publish("NSFPhaseII", m, callback);
delay(5000);
}
私はまた、JavaでJSONオブジェクトを使用しようとしましたが、私はpublish
で本当に奇妙なエラーが発生します。 publish
ランタイムの前に次のエラーが表示されます: "関数" Publish() "は、" publish(String、JSONObject、Callback) "のようなパラメータを期待しています。 : "PubnubCoreAsync型のpublish(String、JSONObject、Callback)メソッドは引数(String、JSONObject、net Callback(){})には適用されません。エラー前のランタイムとして、私はそれらすべての正確なものを供給する必要があったので、さらに奇妙です。私は、pubnubに必要なライブラリにはJSONObject型があり、処理も同じで、2つの型がうまく動作しないという問題があると私は信じています。とにかく
は、ここhereから直接コピーである私の埋め込まれたJavaScriptです:
<html>
<head>
<script type="text/javascript" src="http://pubnub.github.io/eon/v/eon/0.0.10/eon.js"></script>
<link type="text/css" rel="stylesheet" href="http://pubnub.github.io/eon/v/eon/0.0.10/eon.css" />
</head>
<body>
<div id="chart"></div>
<script>
// using the example stream from
// http://www.pubnub.com/developers/data-streams/sensor-network
var pubnub = PUBNUB.init({
subscribe_key: 'sub-c-d0682e0e-04e9-11e6-a8fd-02ee2ddab7fe', //rebound
//subscribe_key: 'sub-c-5f1b7c8e-fbee-11e3-aa40-02ee2ddab7fe',
ssl: true
});
eon.chart({
pubnub: pubnub,
history: false,
channel: 'NSFPhaseII',
//channel: 'pubnub-sensor-network',
limit: 100,
rate: 10,
ssl: true,
debug: true,
generate: {
transition: {
duration: 3
},
bindto: '#chart',
data: {
x: 'x'
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%H:%m:%S'
}
}
}
},
transform: function(m) {
return {
eon: {
'Humidy': m.humidity,
'Temperature': m.ambient_temperature,
'Light': m.photosensor
}
}
}
});
</script>
</body>
</html>
、ここでは私の処理.pdeです。今回のバージョンでは、JSONを公開するようにセットアップしました。
import com.pubnub.api.*;
import org.json.*;
processing.data.JSONObject write;
Pubnub pubnub = new Pubnub("pub-c-ca3babb0-c900-4a8e-9524-fc2ae26847da", "sub-c-d0682e0e-04e9-11e6-a8fd-02ee2ddab7fe");
void setup()
{
write = new processing.data.JSONObject();
try {
pubnub.subscribe("NSFPhaseII", new Callback() {
//@Override
//public void connectCallback(String channel, Object message) {
// pubnub.publish("NSFPhaseII", "Hello from the PubNub Java SDK", new Callback() {});
//}
@Override
public void disconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
@Override
public void errorCallback(String channel, PubnubError error) {
System.out.println("SUBSCRIBE : ERROR on channel " + channel
+ " : " + error.toString());
}
}
);
} catch (PubnubException e) {
System.out.println(e.toString());
}
}
void draw(){
write.setFloat("var1", random(10));
write.setFloat("var2", random(10));
write.setFloat("var3", random(10));
//saveJSONObject(write, "data/new.json");
pubnub.publish("NSFPhaseII", write,new Callback() {});
delay(15000);
}
ご迷惑をおかけしておりません。このコードでは、このpublish
ためCallback()
の実装である
はEONチャートのために必要なことですか?これは書式設定エラーを解決しません。私は今、エラーを取得します: – Murenrb
私はちょうどあなたのJavaコードを扱っています。これは、Callbackクラス・パラメータの実装がないため、パブリッシュは機能しません。 –
ありがとう!しかし、私はこれが核心問題ではないと思う。私は、処理とpubnubライブラリの両方が 'JSONObject'型を持っていることが考えられます。上記のように、通常の 'JSONObject write'の代わりに' processing.data.JSONObject write; 'があります。完全なコールバックがあるとき、 'processing.data.JSONObject'ではなく' org.json.JSONObject'を探していると言います。問題は、org.json.JSONObjectを生成する方法がわかりません。 – Murenrb