大佬教程收集整理的这篇文章主要介绍了node.js – Socket.io的s3_pkt.c中的HTTPS错误“数据长度太长”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们通过端口443上的SSL运行我们的websocket服务器。我们在正确的位置指定了WebsocketMainInsecure.swf文件的位置(这些是跨域ws请求),我们正在加载swfobject嵌入的文件通过httpS。
我们在我们的EC2实例的安全组中打开了端口843,并且跨源策略文件已成功通过http呈现。它似乎不通过httpS呈现(Chrome会引发SSL连接错误)。
我们尝试了两个版本的WebsocketMainInsecure.swf文件。第一个是由Socket.io提供的文件,它是从WebsocketMainInsecure.as构建的,不包括行
Security.allowInsecureDomain("*");
这将抛出错误SCRIPT16389:Unspecified错误。在WebSocket .__ flash.setCallerUrl(LOCATIOn.href)行。
我们认为这是因为SWF文件不允许httpS请求,所以我们用在这个仓库找到的WebSocketMainInsecure.swf文件:https://github.com/gimite/web-socket-js,因为它包括
Security.allowInsecureDomain("*");
行在actioncript代码。当我们使用这个,我们看到flashsocket连接保持断开和重新连接在无限循环。我们在运输原型的onSocketError函数中跟踪了socket.io库中的transport.js文件的错误。它抛出的错误:
[Error: 139662382290912:error:1408F092:SSL routInes:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
我们甚至尝试更新socket.io和socket.io-client到版本0.9.6,我们仍然得到访问被拒绝的错误。
这个错误很难调试,现在我们在如何获取flashsockets工作的一个损失。我们想知道它是否可能与使用旧版本的socket.io,或者也许我们的策略文件服务器不接受httpS请求,或者甚至WebSocketMainInsecure.swf文件从web- socket-js github repo是相对于socket.io-client所期望的。
>想法:
我假设你(可能)试图访问一个太长的URL。如果数据经常通过GET-Parameters传递,就会发生这种情况。网址的官方限制低于512字节。
详细信息:http规范说协议行最多可以为512字节。如果更长时间,服务器可能拒绝请求或可能无法处理请求。具有GET请求的http中的第一行像需要适合512字节的“GET / path / to?param1 = data1& param2 = data2& … http / 1.1”。对于POST请求,没有这样的限制。
但是你的错误似乎起源于一些SSL实现(openSSL?):参考s3_pkt.c在行503(我发现这样的文件:http://www.opensource.apple.com/source/OpenSSL/OpenSSL-7.1/openssl/ssl/s3_pkt.c),但似乎是不同的;我不知道细节,只是猜测:我可以想到openSSL实现有一些有限的支持长GET请求(因为他们不是http符合),并且只是以这种方式拒绝他们…
我现在看到这些可能性:
解决方案:使用POST而不是GET-requests传输更长的数据集。看看这是否工作…
2.尝试在所使用的服务器上替换openssl-installation或libopenssl;它可能破碎或过时?
尝试请求一些帮助从openssl开发人员…
希望有帮助…
以上是大佬教程为你收集整理的node.js – Socket.io的s3_pkt.c中的HTTPS错误“数据长度太长”全部内容,希望文章能够帮你解决node.js – Socket.io的s3_pkt.c中的HTTPS错误“数据长度太长”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。