我一定遗漏了一些非常明显的东西,但我无法正常工作。
握手是正确的,但是一旦我发送了一条数据,我就没有在服务器上得到正确的数据。
服务器:
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
。使用 xor 解码解码的数据似乎是c2 89
. Ac2
因某种未知原因而被前置 -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 发送的内容,从而了解问题所在?