Actionscript 3 AS3 Websocket握手

Actionscript 3 AS3 Websocket握手,actionscript-3,websocket,Actionscript 3,Websocket,我正在尝试构建一个可以与HTML5WebSocket握手的AS3Socket服务器。我的代码基于此链接 这是我使用与链接中的示例相同的值得到的: import com.dynamicflash.util.Base64; import com.adobe.crypto.SHA1; function getKey():void{ var key:String = "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"

我正在尝试构建一个可以与HTML5WebSocket握手的AS3Socket服务器。我的代码基于此链接

这是我使用与链接中的示例相同的值得到的:

 import com.dynamicflash.util.Base64;
 import com.adobe.crypto.SHA1;    

function getKey():void{
var key:String = "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
key = SHA1.hash(key);   
key = Base64.encode(key);
trace(key);
    //traces YjM3YTRmMmNjMDYyNGYxNjkwZjY0NjA2Y2YzODU5NDViMmJlYzRlYQ==  instead of s3pPLMBiTxaQ9kYGzzhZRbK+xOo="

}
现在,示例说明输出应为:

具体地说,如果如上面的示例所示,| Sec WebSocket Key | header字段的值为“DGHLIHNHBXBSSBUB25JZQ==”,服务器将连接字符串“258EAFA5-E914-47DA-95CA-C5AB0DC85B11”以形成字符串“DGHLIHNHBXBSSBUB25JZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11”。然后,服务器将获取该文件的SHA-1散列,给出值0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea。然后对该值进行base64编码(参见[RFC4648]的第4节),以给出值“s3pplmBitXaq9kygzhZrbk+xOo=”


我错过了什么吗?

我已经有一段时间没有读过任何动作脚本了,但你不应该替换它吗

key = SHA1.hash(key);   
key = Base64.encode(key);


??当前代码将sha1哈希(字节数组)转换为字符串,但它是您需要传递到base64编码器的原始字节数组。

如果有任何帮助,请告诉我:

key = SHA1.hashToBase64(key);