我只是想使用節點包「node-spdy」來試用SPDY。spdy.node.js:我只是開了'324(ERR_EMPTY_RESPONSE)
我的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);
我的問題:回調函數永遠不會執行,分別爲節點從未登錄「發送響應...」或者「響應已sended。」我剛剛得到一個空的反應,但Node.js的不會拋出exeption:
Fehler 324(淨值:: ERR_EMPTY_RESPONSE)
我的服務器端配置:我用node.js(版本0.7.6)和node-spdy(承諾eafd9c9fdd
)在Windows Se7en下。
我的客戶端配置:我使用鉻版本作爲瀏覽器來測試spdy out。 在我的測試中,我不使用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來做到這一點? - 如果你需要更多的細節,請告訴我。感謝您的回答。
我想我只是讀了一些有趣的[評論](http://japhr.blogspot.com/2012/04/edge-spdy-nodejs-and-expressjs.html?showComment=1335207922979#c4966358242271584919)寫的Storm:'不可能在沒有SSL的情況下運行node-spdy。'我會試着找出更多關於這個的信息,或者是否有人知道這個事實? – fridojet
現在我使用SSL與示例應用程序的證書。但仍然存在相同的問題。 – fridojet