2つのノードサーバーがあります。1つはポート5000(「Face」と呼びます)に、もう1つはポート5001(「Hands」と呼びます)にあります。
両方とも、フォアマンprocfileを介して同時に開始されます。ポートは修正されており、ターゲットにしているURLはブラウザで機能します。
Handsが起動したら、Face(Facepalm?)と話し、自分自身を登録する必要があります。ただし、以下のコードは機能していないようです。(これはコーヒースクリプトで生成されたJSです)
レジスタは、httpサーバーが開始された後、サーバーの初期化中に呼び出されます。タイミングの問題である場合は、2秒のsetTimeout()でレジスタ関数を開始します。そのヒット(/ home / register)が利用可能で機能しているページを知っています。
今、私はそれが「Postingto」コンソールログ行に到達するのを見ることができます。フェイスでは、console.logをレジスタコードに配置しましたが、ログに記録されることはありません。つまり、実際にヒットすることはないと思います。(ブラウザからヒットした場合はログに記録されます)エラーは発生しません。リクエストを呼び出してから、サンドイッチを取得するためにさまよっています。
どちらのサーバーも「独自のロール」であり、フレームワークを使用していません。奇妙なタイプミスが表示された場合、または詳細情報が必要な場合はお知らせください。ありがとう!
register = function() {
var _this = this;
console.log('Registering with Face Server');
return post_face('/home/register', GLOBAL.data, function(rs) {
console.log(rs);
if (rs.registered) {
GLOBAL.data.registered = true;
return console.log("Registered with face at " + GLOBAL.config.face_host + ":" + GLOBAL.config.face_port);
} else {
throw "ERROR: Could not register with face server! " + GLOBAL.config.face_host + ":" + GLOBAL.config.face_port;
return false;
}
});
};
post_face = function(path, data, cb) {
var post_data, post_options, post_req;
post_data = querystring.stringify({
'registration': data
});
post_options = {
host: GLOBAL.config.face_host,
port: GLOBAL.config.face_port,
path: path,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length
}
};
console.log("Posting to " + post_options.host + ":" + post_options.port);
post_req = http.request(post_options, function(res) {
var response,
_this = this;
console.log(res);
response = "";
res.setEncoding('utf8');
res.on('data', function(chunk) {
return response += chunk;
});
return res.on('end', function() {
return cb.call(_this, response);
});
});
return true;
};