@H_419_0@WebSocketClIEnt( URI serverUri , Draft protocolDraft , Map httpheaders , int connectTimeout)@H_419_0@使用Java-WebSocket,以及查看许多其他API,如Jetty和AndroidAsync.但尽管如此,我无法打开websocket连接.@H_419_0@我有一个Apache http cookie,需要这个来通过WebSocket向服务器验证自己.将cookie转换为httpheader的正确方法是什么,或者是否有任何简洁的方法可以在连接到websocket时简单地在身份验证中添加整个cookie?也许我只是错过了明显的……@H_419_0@对可能滥用条款的道歉,但我希望你能得到一般的想法.@H_419_0@非常感谢任何帮助,谢谢!
解决方法:
@H_419_0@所以我实际上设法解决了它,结果发现它不是实际问题的cookie,而是websocket没有用有效的sslcontext初始化.这很容易通过以下方式解决:@H_419_0@WebSocketorderClIEnt webSocketorderClIEnt = new WebSocketorderClIEnt(uri, new Draft_17(), cmap, TIMEOUT);SSLContext sslContext = null;sslContext = SSLContext.getInstance( "TLS" );sslContext.init( null, null, null ); // will use java's default key and trust store which is sufficIEnt unless you deal with self-signed certificateswebSocketorderClIEnt.setWebSocketFactory(new DefaultSSLWebSocketClIEntFactory(sslContext));webSocketorderClIEnt.connectBlocking();
@H_419_0@使用WebSocketorderClIEnt:@H_419_0@private class WebSocketorderClIEnt extends WebSocketClIEnt { public WebSocketorderClIEnt( URI serverUri, Draft draft, Map<String, String> headers, int timeout) { super( serverUri, draft, headers, timeout ); } @OverrIDe public voID onopen( ServerHandshake handshakedata ) { Log.w("connected", "true"); } @OverrIDe public voID onMessage( String message ) { Log.w( "got: ", message ); } @OverrIDe public voID onClose( int code, String reason, boolean remote ) { Log.w( "disconnected", ""+code ); } @OverrIDe public voID one rror( Exception ex ) { ex.printstacktrace(); }}
@H_419_0@希望这有助于将来可能遇到此问题的任何人. 总结 以上是内存溢出为你收集整理的java – 使用身份验证cookie打开WebSocket连接全部内容,希望文章能够帮你解决java – 使用身份验证cookie打开WebSocket连接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)