问题标签 [handshake]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openssl - SSL_read() 时是否需要处理 SSL_ERROR_WANT_WRITE?
我正在阅读 openssl 编程教程。
我不能让服务器应用程序在单个连接的任何操作上被阻塞,
因此我将使用非阻塞套接字。
因为看起来,ssl 握手发生在 ssl_accept 和 ssl_connect,
这可能会被阻止,我必须在 ssl_accept 调用之前将套接字设置为非阻塞。
教程文档说我需要在 SSL_read 上处理 SSL_ERROR_WANT_WRITE(当然还有 SSL_ERROR_WANT_READ),因为 SSL 重新握手可以随时发生。
出于同样的原因,SSL_write 上的 SSL_ERROR_WANT_READ。
从文档中,
如果我们尝试重新握手,我们会得到 WANT_WRITE,并且我们会在重新握手期间阻止写入。
我们需要等待套接字是可写的,但当它是时重新启动读取
我对“重新”握手感到困惑。
我不打算保存 ssl 状态并重用它(这称为会话恢复?)在第一次握手之后,我不必为同一连接处理握手。
我想知道当我不打算使用会话恢复时,是否还需要担心 SSL_read 上的 WANT_WRITE,反之亦然。
谢谢
iphone - 如何在后台应用程序时检测摇动手势?
我目前正在开发一个音乐播放器应用程序,并且像 iPod 应用程序一样,我想用摇动手势随机播放歌曲。
我正在实施 Apple 推荐的运动方法,在前台一切正常。
但我就是不知道如何从后台调用这些方法。我在整个互联网上都看过,没有关于这个的线索。
第一件事:这可能吗?
谢谢!
jsp - 收到致命警报:JSP 页面中的 handshake_failure 错误
我对授权的 ssl 连接有一个奇怪的问题。首先,我创建了使用授权 ssl 连接到外部服务器的 java 类。我已经在命令行中运行了这个类,它工作正常,从外部服务器获得所需的结果。在我在 JSP 页面中使用了这个类之后。重新启动后,我的 tomcat JSP 页面也得到了我想要的结果。但是在 10-15 个请求之后,JSP 页面给了我这个错误:“javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure”。JSP 页面中没有更多想要的结果。
这是java类代码中的方法:
从 JSP 页面调用:<% fsb fsb = new fsb();
out.println(fsb.TransHttpsAuth("https://ext_server","prameters","GET", "jks_path", "password")); %>
Tomcat版本:6.0.32
Java版本:1.6.0_21
google-chrome - 如何让 Chromium 发送新的 WebSocket 握手?
我在 Chromium 中遇到了这个代码更改。它说 Chromium 现在支持两种握手版本,代码似乎证实了这一点。我的意思是维基百科的第二个版本(draft-ietf-hybi-thewebsocketprotocol-06)。
但是,当我连接到我的服务器时,我唯一获得的是旧版本,即包括以下标头:
但不是新版本,它是一个包含以下内容的请求:
我在这里想念什么?我下载了最新的夜间版本,它在两个多星期前就已包含在内,所以我猜这不是原因。
如何让 WebSocket 发送新的握手版本?
android - 有没有稳定的方法来检测震动事件?
我尝试使用加速度计检测震动事件。我发现当我连续摇晃手机时,加速度的值差是相当稳定的。但是当我旋转手机时,值总是会有很大的变化(该值通常大于“摇动不旋转”)。我想专注于摇晃事件,而不是旋转事件。有没有办法解决这个问题?
这是我的阴影检测代码
是否可以使用加速度计忽略旋转事件?或者我应该尝试改变方向并对 sumAcc 进行一些计算?
ssl - SSL 问题(openssl)
我需要通过 SSL 协议配置连接到服务器。我从服务器所有者那里得到了 2 个文件——CA 根证书(ca.pem)和测试证书请求(test.csr 文件)。
我尝试通过 openssl s_connect 实用程序测试连接,我给出了奇怪的结果(xxx - 屏蔽值):
但是,在握手警报和打印证书数据之后,我看到:
验证返回码是 0 (ok) 是什么意思?如果发生握手错误/警报怎么可能?
python - Python中的SSL:为什么它不向服务器发送证书?
我正在编写一些应该从受 SSL 保护的网页获取信息的软件。下面是我用来连接服务器的一段代码。
但是,这不起作用。它抛出异常消息“握手警报失败”。我捕获了一些来自我的脚本的 TCP 数据包以及来自 Internet Explorer 的相应数据包,并发现我的脚本根本不发送证书(服务器返回类似“致命:未提供证书”之类的内容),而 IE 正常发送它。据我所知,文件 ca.cer 是 x509 证书(以“-----BEGIN CERTIFICATE-----”开头)。
请帮助我并告诉我我做错了什么。如果我提供的信息很少,请告诉我。
问候
html - node.js websocket 握手 Draft-hixie-thewebsocketprotocol-76 不起作用!
我将我的 php websocket 服务器分页到 node.js 但我不明白,为什么我的握手失败了!这是我的代码:
如果有人有想法,我会很开心 :) 用 v76 握手方法规范中给出的示例尝试了这段代码,它在那里没问题。
sockets - 握手后立即发送 WebSocket 消息
我正在WebSocket
node.js 中构建一个服务器。当客户端连接后,我想立即向它发送一条消息。
但是,当我在握手完成后发送它时,Chrome 中出现错误:
当我setTimeout
在握手后 100 毫秒使用 a 发送消息时,它可以工作,但是当使用这种技术使用 10 毫秒时,它再次不起作用。
看起来握手和消息在发送时会附加在一起,以防它们之间的时间间隔很短(尽管我不确定,因为我不知道如何WebSocket
在 Chrome 中查看原始流量 - 如果有人这样做我会喜欢也听到了)。
我不想让服务器等待 100 毫秒,因为这对于客户端来说肯定是显而易见的,而且它看起来像是一个肮脏的把戏,而不是一个好的解决方案。
如何在握手后立即发送消息?
javascript - 在握手期间处理 websocket 发送而不会丢失消息
我想实现以下行为。假设客户端有一个按钮,它触发了一个通过 websocket 发送消息的函数。第一次调用此函数时,会创建一个 WebSocket 实例,然后在以后的调用中使用。
创建 WebSocket 实例是非阻塞的。构造函数立即返回一个 WebSocket 对象,在后台开始握手。成功的连接会触发 onopen 回调。
当第二个呼叫进来并且 websocket 仍在执行握手(例如,用户双击按钮)时,就会出现问题。当 websocket 完成握手时,所有的消息都需要排队发送。
以下代码使用 jQuery 和自定义事件来收集握手期间收到的所有消息。
星号行的条件可能被评估为真,并且在那一刻 websocket 进入 OPEN 状态,执行 onopen 回调,并且只有在此之后,当前消息才被添加到等待握手完成事件的队列中。这将导致消息丢失。
我想避免这种情况,如果有任何想法、意见或建议,我将不胜感激。