Sve*_*weg 26 ssl xmpp websocket
为遇到同样问题的其他人发布此信息.
我正在使用stanza.io连接到XMPP服务器的浏览器客户端(在我的例子中是Prosody).我默认使用的是wss://连接.在开发期间的某个时刻,我的客户端根本无法连接 - 它会立即静默断开连接,而不会提供任何有用的错误信息.
没有错误日志,没有错误代码,没有确认对话框或条形图,没有可能出错的迹象.
Sve*_*weg 38
经过几个小时的调试,我终于找到了问题; 因为我正在搞乱我的XMPP服务器的配置,所以我重新为XMPPd生成了SSL证书.由于我使用的是自签名证书,因此会导致SSL错误.因为之前我曾通过HTTPS访问过相同的URI,所以我已经手动批准了旧的自签名证书 - 但显然重新生成SSL证书后批准不再有效.
问题的关键在于:如果您的SSL证书导致任何类型的警告,wss://WebSocket连接将立即失败,并且没有规范的方法来检测它.
如上所述,似乎没有标准化的方法可以检测到这个问题正在发生,更不用说解决它了.我能找到的这个问题的最佳解决方案如下:
ws://(无SSL)连接.target="_blank"链接wss://,但替换协议https://.这可能是特定于Prosody的,但通过访问该URL,您将看到SSL警告页面.Prosody将显示以"It works!"开头的文本.批准证书后 - 如果服务器端是自定义应用程序,则应显示一条消息,说明"问题已解决,您现在可以关闭此选项卡".它远不是一个顺利的过程,用户体验,但它是我发现的最顺畅的方法.iframe错误页面是不可能的(这是我的第一个想法) - Chrome将拒绝加载它,Firefox将隐藏"添加例外"按钮,我想其他浏览器会表现出类似的行为.
| 归档时间: |
|
| 查看次数: |
40868 次 |
| 最近记录: |