【发布时间】:2011-08-22 22:43:54
【问题描述】:
我一定遗漏了一些非常明显的东西,但我无法正常工作。
握手是正确的,但是当我发送一条数据时,我在服务器上没有得到正确的数据。
服务器:
stream.on("data", function(data) {
if(!handshake) return doHandshake(); // no problems with handshake
console.log(data);
});
客户:
ws = new WebSocket("ws://localhost:12345");
ws.onopen = function() {
ws.send(String.fromCharCode(parseInt("89", 16)));
}
我在 node.js 控制台中看到的内容:
<Buffer 81 82 ed 68 ae 67 2f e1>
所以密钥是ed 68 ae 67,编码数据是2f e1。使用异或解码解码的数据似乎是c2 89。 c2 因某种未知原因被前置 - 89 是正确的。
其他角色也会发生奇怪的事情:
ws.send(String.fromCharCode(parseInt("ab", 16)));
我明白了:
<Buffer 81 82 ff 8e 45 34 3d 25>
解码后的数据是c2 ab,而不是ab。
我正在使用新的框架格式 (Chrome 15) 和 Windows 版本的节点 (node.exe)。
- 这里出了什么问题?
- 是否可以查看 Chrome 发送的内容,从而找出问题所在?
【问题讨论】:
标签: google-chrome encoding node.js websocket chromium