2016-10-10 2 views
0

Поэтому у меня есть следующий Senario:JAVA толкач струнные соединения

У меня есть браузер, который будет выступать в качестве моего толкателя сервера, моего мобильного приложения в качестве клиента.

Теперь я хочу связать браузер с телефоном и подключить их к тому же каналу, который динамически составлен браузером, который отправит сообщение на мое устройство и сообщит ему о подключении к X-каналу. Теперь я застрял в разделе приложения о том, как подключить устройство к каналу, переданному через Pusher.

Я следующий код в 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(); 
} 

К сожалению, присоединение 2-й канал не работает, я получаю следующее сообщение об ошибке:

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

На толкателя можно увидеть следующее :

Invalid channel name ' test2 ' (bad chars) 

Теперь я считаю, что мне нужно найти способ подключения к каналу без отправки q Уотс к нему, так что мне было интересно, как я могу это достичь?

ответ

0

Я только что получил удалось заставить его работать, так как я использовал Gson и что всегда будет устанавливать двойные кавычки строки, чтобы это легче положить его обратно в другой массив JSON, вам нужно будет сделать:

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

это захватит строку без двойных кавычек.

Remove quote from the JSONArray output