WebSocket SendTextMessage中的Android异常

时间:2014-09-07 14:31:47

标签: android

我在Websocket中遇到了sendTextMessage的问题。我试图在连接到服务器后向服务器发送消息,但我仍然得到NUllPointerException。

我在这里包含必要的代码:

    final WebSocketConnection mConnection = new WebSocketConnection();
    new WebSocketConnectionHandler().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    try {
       Thread.sleep(2000);
    }  catch (InterruptedException e) {
       e.printStackTrace();
    }
   if(mConnection.isConnected()){
      Data joinData=new Data("join",playerId+"");
      try{mConnection.sendTextMessage(gson.toJson(joinData));}
      catch (Exception e){
        e.printStackTrace();
       }
       Log.d("SENTTTTTTT:",gson.toJson(joinData));
    }
    Log.d("here:","after scoket");

在WebSocketConnectionHandler中,我在连接到服务器后创建连接并打印日志消息。

      D/connecteddddd﹕ ws://192.168.0.107:8080/spring-websocket-test/game
      W/System.err﹕ java.lang.NullPointerException
      W/System.err﹕ at de.tavendo.autobahn.WebSocketConnection.sendTextMessage(WebSocketConnection.java:137)
      W/System.err﹕ at com.example.tic.WebSocketTic.<init>(WebSocketTic.java:90)
      D/SENTTTTTTT:﹕ {"action":"join","playerId":"0","turn":false}
      D/here:﹕ after scoket

我真的无法理解为什么在检查if(mConnection.isConnected())条件后我得到NullPointerException。 (即使从日志中也很清楚,在发送消息之前建立了连接)。

有人可以告诉我我这样做的方式有什么问题吗?这样做的正确方法是什么?

修改

相应的de.tavendo.autobahn.WebSocketConnection.sendTextMessage代码为:

        protected WebSocketWriter mWriter;
        public void sendTextMessage(String payload) {
            mWriter.forward(new WebSocketMessage.TextMessage(payload));
        }

谢谢:)

0 个答案:

没有答案