gpt4 book ai didi

Java websocket 草案拒绝握手

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:17 24 4
gpt4 key购买 nike

我正在开发 android(Java),使用 TooTallNate's java websockets 中的 this tutorial 在 android 上使用 websockets 连接 ws:// 但我收到错误 draft org.java_websocket.drafts.Draft_10 @4560b1d0 拒绝握手。我尝试了他们的其他草稿版本,但都没有用。

最佳答案

首先,您要使用 Draft_6455 ,这是当前的规范,其余的可能会也可能不会可靠地在不同的服务器上工作。草稿对象的构造函数采用 List<IProtocol>。 .如果没有指定的协议(protocol)与服务器提供的协议(protocol)匹配,则握手将被拒绝。

public Draft_6455( List<IExtension> inputExtensions , List<IProtocol> inputProtocols )
public Draft_6455( List<IExtension> inputExtensions , List<IProtocol> inputProtocols, int inputMaxFrameSize )

我在使用最新版本的 TooTallNate 的 Java Websockets 时遇到了与您类似的问题,我的代码是这样的:

   knownExtensions = new java.util.ArrayList();
knownProtocols = new java.util.ArrayList();
if(this._protocol){
knownProtocols.add(new org.java_websocket.protocols.Protocol(this._protocol));
}

this._socket = new _WebSocket(uri, new org.java_websocket.drafts.Draft_6455(knownExtensions, knownProtocols), toHashMap(this._headers), this._timeout);

必须至少有一个有效的协议(protocol)(即使它是一个空字符串),否则您会得到上面提到的错误。所以我将代码更改为:

...   
if(this._protocol){
knownProtocols.add(new org.java_websocket.protocols.Protocol(this._protocol));
}
/* -=-=-=- NEW ADDED CODE -=-=-=- */
else {
knownProtocols.add(new org.java_websocket.protocols.Protocol(""));
}
/* -=-=-=- END NEW ADDED CODE -=-=-=- */
...

这就是问题所在,没有指定协议(protocol)导致我收到“拒绝握手”错误消息。

请注意上面的“拒绝握手”有几个原因,但在我的例子中是缺少空协议(protocol)......

关于Java websocket 草案拒绝握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com