3

私はアウトバーン Web ソケット通信に取り組んでいます。私のアプリケーションにはカルーセル ビューがあり、4 つの画像があります。ユーザーが画像をクリックすると、websocket を使用してサーバーに接続し、メッセージを送信します。しかし、問題は、画像を選択するとサーバーに正しく接続されますが、メッセージが送信されるたびにクライアント(Android デバイス) が websocket に接続することです。これが私のコードです..

if (pos == 0) {
    product_photo.setImageResource(R.drawable.myoffers_0);
    product_photo.setOnClickListener(new ImageButton.OnClickListener(){
        public void onClick(View v){
            String id = "Product0";
            Log.d(TAG, "Current product is : " + id);
            A.sendMessage(id);  
        }
    });
}

Websocket.class

public class WebSocket_Connector extends Activity{

    private static final String TAG = "ECHOCLIENT";
    private static final String TAG1 = "My app";
    public final WebSocketConnection mConnection = new WebSocketConnection();
    private String tmpString = "";

    public void connect(final String wsuri) {

          Log.d(TAG, "Connecting to: " + wsuri); 

          try {
             mConnection.connect(wsuri, new WebSocketHandler() {

                @Override
                public void onOpen() {
                   Log.d(TAG, "Status: Connected to " + wsuri ); 
                   Log.d(TAG, "Connection successful!\n");
                   mConnection.sendTextMessage(tmpString); 
                   tmpString = "";
                }

                @Override
                public void onTextMessage(String payload) {
                   Log.d(TAG, "Got echo: " + payload);
                }

                @Override
                public void onClose(int code, String reason) {
                   Log.d(TAG, "Connection closed.");
                }
             });
          } catch (WebSocketException e) {

             Log.d(TAG, e.toString());
          }
       }

    public void sendMessage(String message) {
        if (mConnection.isConnected()) {
            Log.d(TAG1, "Messeage is sent : " + message);
            mConnection.sendTextMessage(message); 

        }
        else {
            tmpString = message;
            connect("ws://xxx.xxx.x.xxx:xxxx");
        }
    }   
}

ここでは「if (mConnection.isConnected())」には行きません..常にelseに行きます。

4

0 に答える 0