2016-10-10 10 views
0

は、だから私は、次のsenarioを持っています。JAVAプッシャー列接続

ここで、ブラウザと電話機をペアにして、ブラウザで動的に構成された同じチャネルに接続し、デバイスにメッセージを送信してXチャネルに接続するようにします。今では、プッシャーを介して送信されたチャンネルにデバイスを接続する方法については、アプリのセクションで固まっています。

私はJAVAで次のコードしている:

悲しいこと
public void openPusherListener() { 


    //default settings for pusher 
    PusherOptions options = new PusherOptions().setCluster("eu"); 
    final Pusher pusher = new Pusher(API_KEY, options); 


    pusher.connect(new ConnectionEventListener() { 
     @Override 
     public void onConnectionStateChange(ConnectionStateChange change) { 
      String socketId = pusher.getConnection().getSocketId(); 
      Log.d("socketID", socketId); 
     } 

     @Override 
     public void onError(String message, String code, Exception e) { 
      System.out.println("There was a problem connecting!"); 
     } 
    }, ConnectionState.CONNECTED); 




    Channel channel = pusher.subscribe("waitlist");//Default channel to join 


    channel.bind("test", new SubscriptionEventListener() { 
     @Override 
     public void onEvent(String channelName, String eventName, final String data) { 
      Gson gson = new Gson(); 
      JsonObject mydata = gson.fromJson(data, JsonObject.class); 

      Log.d("PUSHER - channel", String.valueOf(mydata.get("channel"))); 

      String myChannel = String.valueOf(mydata.get("channel")).replace('"', ' '); 

      Log.d("TEST MYCHANNEL", String.valueOf(mydata.get("channel"))); 


      Channel channel = pusher.subscribe(myChannel);//This doesnt work. 

      channel.bind("test2", new SubscriptionEventListener() { 
       @Override 
       public void onEvent(String channelName, String eventName, final String data) { 
        Gson gson = new Gson(); 
        JsonObject mydata = gson.fromJson(data, JsonObject.class); 

        Log.d("TEST2 PUSHER", String.valueOf(mydata.get("joinChannel"))); 
       } 
      }); 



     } 
    }); 
    pusher.connect(); 
} 

第二チャンネルdoesntの作業に参加し、私は次のエラー受けています:

I/System.out: There was a problem connecting! 

プッシャーに私が見ることができるが、以下の:

Invalid channel name ' test2 ' (bad chars) 

ここで、qを送信せずにチャネルに接続する方法を見つけなければならないそれにも負けているので、私はこれをどうやって達成できるのだろうと思っていたのですか?

答えて

0

、それは別のJSON配列に戻し、それを置くために簡単ですし、あなたがする必要があるだろう、私はGsonを使用していたので、私はただ、それが仕事を得ることに成功しました、それは常に文字列を二重引用符を設定します:

String myChannel = mydata.get("channel").getAsString(); 

これは二重引用符のない文字列を取得します。

Remove quote from the JSONArray output