2014-01-15 50 views
1

在我的android应用程序我想使用高速公路库使用websockets。高速公路异常WebSockets协议违规

我认为服务器正在使用draft-17。 有人可以告诉我,如何设置客户端使用此协议?

我有这样的代码:

 mConnection.connect(url,new String[] {"protocolname?"}, new WebSocketHandler() { 

     //some functions 
     },options); 

问候

UPDATE 在我的服务器我用码头在8.1版本。

UPDATE 从logcat的输出是:

01-15 22:54:53.481: D/de.tavendo.autobahn.WebSocketReader(32452): created 
01-15 22:54:53.491: D/de.tavendo.autobahn.WebSocketConnection(32452): WS reader created  and started 
01-15 22:54:53.491: D/de.tavendo.autobahn.WebSocketReader(32452): running 
01-15 22:54:53.491: D/de.tavendo.autobahn.WebSocketWriter(32452): created 
01-15 22:54:53.491: D/de.tavendo.autobahn.WebSocketConnection(32452): WS writer created and started 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketConnection(32452): opening handshake received 
01-15 22:54:53.551: D/Websocket(32452): Status: Connected to ws://192.168.178.30:8080 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketReader(32452): run() : WebSocketException (de.tavendo.autobahn.WebSocketException: RSV != 0 and no extension negotiated) 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketReader(32452): ended 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketConnection(32452): fail connection [code = 4, reason = WebSockets protocol violation 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketReader(32452): quit 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketWriter(32452): ended 
01-15 22:54:53.551: D/Websocket(32452): Connection lost. 
01-15 22:54:53.551: D/de.tavendo.autobahn.WebSocketConnection(32452): worker threads stopped 

回答

1

你指的WebSocket协议版本或WebSocket的子协议?

关于前者:AutobahnAndroid实现RFC6455(最后和最终的WebSocket协议版本)。没有办法降级到旧版本,但基本上,从Hybi-10 +到RFC6455没有发生重大变化。

关于后者:打开WebSocket连接时指定WebSocket子协议,如this

+0

是的WebSocket协议。感谢这些信息。你知道如何将Jetty 8.1设置为RFC6455标准吗? –

+0

不,对不起。但可能你不需要做任何特别的事情。 WebSocket协议版本是在两个对等实现之间的初始WebSocket开放握手期间公布和协商的。 – oberstet

+0

好吧,我的问题是,我的android客户端连接后断开连接。例外是调用:'D/de.tavendo.autobahn.WebSocketConnection(6471):失败连接[代码= 4,原因= WebSockets协议违规' –