我只是想使用节点包“node-spdy”来试用 SPDY。
我的JavaScript:
编辑:现在脚本包含有关证书的信息。我从 twitlog 测试应用程序中获取它们。
var spdy = require('spdy'),
fs = require('fs');
var options = {
key: fs.readFileSync(__dirname + '/keys/spdy-key.pem'),
cert: fs.readFileSync(__dirname + '/keys/spdy-cert.pem'),
ca: fs.readFileSync(__dirname + '/keys/spdy-csr.pem')
};
var spdy = require('spdy');
var server = spdy.createServer({}, function(req, res) {
console.log('Send response...');
res.writeHead(200, {
"Content-Type": "text/plain"
});
res.write("Hello World!\n");
res.end();
console.log('Response has been sended.');
});
server.listen(3000);
我的问题:永远不会执行回调函数,节点永远不会记录“发送响应...”或“响应已发送。”。我只是得到一个空响应,但 node.js 没有抛出异常:
费勒 324 (net::ERR_EMPTY_RESPONSE)
我的服务器端配置:我在 Windows Se7en 下使用node.js(版本 0.7.6)和node-spdy(commit )。eafd9c9fdd
我的客户端配置:我使用 chromium 构建作为浏览器来测试 spdy。在我的测试期间,我不使用 SSL,所以我不得不更改我的配置。这就是你可以在下面找到的about:net-internals/#spdy
:
==SPDY Status==
SPDY Enabled: true
Use Alternate Protocol: false
Force SPDY Always: true
Force SPDY Over SSL: false
Next Protocols:
我的客户端调试内容:铬调试服务about:net-internals/#tests
告诉我:
Result Experiment Error Time (ms)
FAIL Fetch http://localhost:3000/
Don't use any proxy EMPTY_RESPONSE (-324) 3022
Fetch http://localhost:3000/
Use system proxy settings ? ?
编辑:由于我添加了证书信息,客户端调试信息发生了一些变化。这是最新的:
Result Experiment Error Time (ms)
FAIL Fetch https://localhost:3000/
Don't use any proxy ABORTED (-3) 9
FAIL Fetch https://localhost:3000/
Use system proxy settings ABORTED (-3) 300489
FAIL Fetch https://localhost:3000/
Use Firefox's proxy settings ABORTED (-3) 4
FAIL Fetch https://localhost:3000/
Use system proxy settings ABORTED (-3) 300438
我的服务器端调试内容:这就是我收到请求时内置节点调试器告诉我的内容:
编辑:即使我将证书信息添加到脚本中,服务器端调试内容也不会改变。
debug>n
break in net.js:865
863
864 function onconnection(clientHandle) {
865 var handle = this;
866 var self = handle.socket;
867
debug>
break in net.js:866
864 function onconnection(clientHandle) {
865 var handle = this;
866 var self = handle.socket;
867
868 debug('onconnection');
debug>
break in net.js:868
866 var self = handle.socket;
867
868 debug('onconnection');
869
870 if (!clientHandle) {
debug>
break in net.js:870
868 debug('onconnection');
869
870 if (!clientHandle) {
871 self.emit('error', errnoException(errno, 'accept'));
872 return;
debug>
break in net.js:875
873 }
874
875 if (self.maxConnections && self.connections >= self.maxConnections) {
876 clientHandle.close();
877 return;
debug>
break in net.js:880
878 }
879
880 var socket = new Socket({
881 handle: clientHandle,
882 allowHalfOpen: self.allowHalfOpen
debug>
break in net.js:884
882 allowHalfOpen: self.allowHalfOpen
883 });
884 socket.readable = socket.writable = true;
885
886 socket.resume();
debug>
break in net.js:886
884 socket.readable = socket.writable = true;
885
886 socket.resume();
887
888 self.connections++;
debug>
break in net.js:888
886 socket.resume();
887
888 self.connections++;
889 socket.server = self;
890
debug>
break in net.js:889
887
888 self.connections++;
889 socket.server = self;
890
891 ;
debug>
break in net.js:892
890
891 ;
892 self.emit('connection', socket);
893 socket.emit('connect');
894 }
debug>
break in net.js:893
891 ;
892 self.emit('connection', socket);
893 socket.emit('connect');
894 }
895
debug>
break in net.js:894
892 self.emit('connection', socket);
893 socket.emit('connect');
894 }
895
896
debug>
我的问题:我只想使用 SPDY 向客户端返回一条简单的短信。如何使用 node.js 做到这一点?- 如果您需要更多详细信息,请告诉我。感谢您的回答。