2017-03-01 40 views
0

d/de.tavendo.autobahn.WebSocketReader:創建 d/de.tavendo.autobahn.AutobahnReader:創建 d/de.tavendo.autobahn.AutobahnConnection:讀者創建和啓動 d/de.tavendo.autobahn.WebSocketReader:運行 d/de.tavendo.autobahn.WebSocketWriter:創建 d/de.tavendo.autobahn.AutobahnWriter:創建 d/de.tavendo.autobahn.AutobahnConnection :作家創建並啓動 d/de.tavendo.autobahn.AutobahnReader:無效消息WAMP:缺少 陣列靠近或無效附件參數 d/de.tavendo.autobah n.WebSocketConnection:開口握手接收 d/de.tavendo.autobahn.AutobahnConnection:WAMP會話 163056330058b5c9094c0d3240526863建立 d/de.tavendo.autobahn.WebSocketConnection:WebSockets的關閉接收 (1007 - 空)d/de.tavendo.autobahn .WebSocketReader:run(): ConnectionLost D/de.tavendo.autobahn.WebSocketReader:ended D/de.tavendo.autobahn.WebSocketConnection:失敗連接[code = 3, reason = WebSockets連接丟失 D/de.tavendo .autobahn.WebSocketReader:退出 D/de.tavendo.autobahn.WebSocketWriter:已結束D/MAIN_ACT__CHAT_CLOSE: WebSockets連接丟失D/de.tavendo.autobahn.WebSocketConnection: 工作線程停止PED無效WAMP消息:錯過陣列靠近或無效附件參數

public class MainActivity extends AppCompatActivity { 

    private final AutobahnConnection autobahnConnection = new AutobahnConnection(); 

    private static class WebSocketPubSubEvent { 
     public int num; 
     public String name; 
     public boolean flag; 
     public Date created; 
     public double rand; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     autobahnConnection.connect("ws://95.213.194.229:9000", new Autobahn.SessionHandler() { 
      @Override 
      public void onOpen() { 
       autobahnConnection.subscribe("chat/topic", 
         WebSocketPubSubEvent.class, 
         new Autobahn.EventHandler() { 
          @Override 
          public void onEvent(String topic, Object event) { 
           WebSocketPubSubEvent evt = (WebSocketPubSubEvent) event; 
           Log.d("MAIN_ACTIVITI__CHAT", evt.name); 
           Log.d("MAIN_ACTIVITI__CHAT", new Integer(evt.num).toString()); 
           Log.d("MAIN_ACTIVITI__CHAT", evt.flag ? "TRUE" : "FALSE"); 
           Log.d("MAIN_ACTIVITI__CHAT", new Integer(evt.created.getHours()).toString()); 
           Log.d("MAIN_ACTIVITI__CHAT", new Double(evt.rand).toString()); 
          } 
         } 
       ); 

       autobahnConnection.sendTextMessage("Hello from DANIEL!!!"); 
      } 

      @Override 
      public void onClose(int i, String s) { 
       Log.d("MAIN_ACT__CHAT_CLOSE", s); 
      } 
     }); 
    } 
} 

如果刪除autobahnConnection.sendTextMessage("Hello from DANIEL!!!");它的工作確定和連接沒有丟失:

d/de.tavendo.autobahn.WebSocketReader:創建 d/de.tavendo.autobahn.AutobahnReader :創建 d/de.tavendo.autobahn.AutobahnConnection:讀者創建和啓動 d/de.tavendo.autobahn.WebSocketReader:運行 d/de.tavendo.autobahn.WebSocketWriter:創建 d/de.tavendo.autobahn。 AutobahnWriter:創建 d/de.tavendo.autobahn.AutobahnConnection:作家創建並啓動 d/de.tavendo.autobahn.AutobahnReader:無效消息WAMP:缺少 陣列靠近或無效附件參數 d/de.tavendo.autobahn.WebSocketConnection:開口握手收到 d/de.tavendo.autobahn.AutobahnConnection:建立

WAMP會議 212228657158b64424d3300506265704但是,如果我從JavaScript客戶端發送字符串消息就OK了太多的工作。

回答

0

要發送消息的WebSocket服務器寫它訂閱過程之後:

autobahnConnection.publish("chat/topic", new Object() { 
    final String msg = "Message for you, ... <3"; 
});