ノードパッケージ「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 (コミット) を使用しています。eafd9c9fdd
クライアント側の構成: 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を使用してそれを行うにはどうすればよいですか? - 詳細が必要な場合は、教えてください。回答ありがとうございます。