基本的なフロントエンド (html、css、jquery) があり、sails.io.js を使用して API サーバー (sails で開発され、cors が有効になっている) と通信したいと考えています。API は localhost:10000 で実行されていますが、後で webclient のドメインとは別のドメインで実行されます。
jquery から直接、この API に get リクエストを発行して、期待どおりの結果を得ることができます。
websocket に関しては、いくつかの問題があります... index.html に (テストするためだけに)、次のように記述します。
<script src="js/sails.io.js"></script>
<script type="text/javascript">
io.sails.url('http://localhost:10000');
io.socket.get('/data', function serverResponded (body, sailsResponseObject) {
// body === sailsResponseObject.body
console.log('Sails responded with: ', body);
console.log('with headers: ', sailsResponseObject.headers);
console.log('and with status code: ', sailsResponseObject.statusCode);
});
</script>
しかし、Chrome の開発者ツールは教えてくれます
ReferenceError: io is not defined
何か案が ?
アップデート
Web サーバー (python -m SimpleHTTPServer) で index.html を提供しています
。bower を使用して Sails.io.js をインストールしました。
私はこのテストをできるだけ簡単にしようとしました:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script src="bower_components/sails.io.js/dist/sails.io.js"></script>
<script src="index.js"></script>
</body>
</html>
index.js:
window.onload=function(){
io.sails.url = 'http://localhost:10000';
io.socket.get('http://localhost:10000/data', function (body, response) {
console.log('Sails responded with: ', body);
});
};
私の帆 (0.9.16) API は、GET /data ルートで json オブジェクトのみを返します。
API にダミーの __getcookie 関数を実装しました。
'get /__getcookie': function(req, res, next){
res.json({ok: 123});
}
そして、interpt.js の 481 行目にコメントを付けました (以下の Scott のコメント)。
config/socket.js も次のように変更しました。
authorization: false,
=> API の /data ルートから結果を取得できるようになりました :)
しかし...各リクエストで、次のエラーがあります:
error: Error: No valid session available from this socket.