2

私はreal-time chatting androidアプリケーションでリアルタイム応答のためにsocket.ioを接続する必要があります。私はこのチュートリアルに続きました:https://socket.io/blog/native-socket-io-and-android/と私は正常に私のアンドロイドアプリでsocket.ioを実装し、トーストで応答を得る。ここでandroidクライアントでsocket.io応答を取得しましたが、リサイクラアダプタでレスポンスを実装する方法を理解できません

ソケット接続クラスである:ここで

import android.app.Application; 
    import java.net.URISyntaxException; 
    import io.socket.client.IO; 
    import io.socket.client.Socket; 

    public class ChatApplication extends Application { 

    private Socket mSocket; 
     { 
     try { 
      mSocket = IO.socket(Constants.CHAT_SERVER_URL); 
      } catch (URISyntaxException e) { 
       throw new RuntimeException(e); 
      } 
     } 

    public Socket getSocket() { 
      return mSocket; 
      } 
    } 

は、サーバーのURLです:

public class Constants { 
     public static final String CHAT_SERVER_URL = 
     "https://pubsub.XXX.com:3000"; 
    } 

私はこの活動にsocket.ioを接続し、完全な応答を取得しました。

このアクティビティでは、リサイクルアダプタを添付して、友人との1対1の完全な会話を表示しました。完全な会話を見るために、私は改装を使用しました。ここで

はこのアクティビティでアクティビティコードリンク https://pastebin.com/b22ehMFE

は、私は、「ユーザー名」イベントを通じてソケットに接続し、「onNewMessage」関数を呼び出してきています。

 // initialize Socket 
     ChatApplication app = (ChatApplication) getApplication(); 
     mSocket = app.getSocket(); 
     mSocket.on(Socket.EVENT_CONNECT, onConnect); 
     mSocket.on(username, onNewMessage); 
     mSocket.connect(); 

私は公共Emitter.Listener onNewMessage

public Emitter.Listener onNewMessage = new Emitter.Listener(){ 

     @Override 
     public void call(final Object... args) { 
      MsgChatActivity.this.runOnUiThread(new Runnable(){ 

       @Override 
       public void run() { 
        //args[i] is the data received 
        JSONObject abc = (JSONObject) args[0]; 

        Toast.makeText(MsgChatActivity.this, ""+ abc, 
          Toast.LENGTH_LONG).show(); 
       } 
      }); 

     } 
    }; 

におけるリアルタイムのサーバの応答を取得しています、私は、アダプタビューで応答を表示する必要があるが、私は何をする方法を理解することはできませんそれ。ここで

は私が実装したいJSON形式でのサーバーの応答で、

pnType:

{ 
    "alertId": "xxxxxxxxxxxxxx", 
    "originator": { 
    "id": "1", 
    "username": "jon", 
    "url": "\/jon", 
    "full_name": "jon smith", 
    "avatar": "\/uploads\/images\/1491902152.jpg", 
    "cover": "\/uploads\/images\/1491902130.jpg", 
    "is_active": "1", 
    }, 
    "queId": "1503725762883", 
    "content_id": "4066", 
    "msg": "", 
    "media": { 
    "sticker": "\/defaultMedia\/stickers\/BlueCat\/3.png" 
    }, 
    "pnType": "chat", 
    "unRead": "1" 
} 

とpnTypeチャット:

  { 
      "pnType": "chatTyping", 
      "originator": { 
      "id": "1", 
      "name": "jon" 
      } 
      } 

を入力してチャット誰も私を実装するために助けることができますアダプターの応答?前もって感謝します。

答えて

1

これが表示されます。リフレクションでModelクラスをJSONOBjectとして使用します。このコードをEmitter.Listerの応答に追加してください。

 Gson gson= new Gson(); 
     socketData=gson.fromJson(abc.toString(),SocketData.class); 
関連する問題