1

ライブラリ Sails.io を使用して、Cordova クライアントから Sails ベースのサーバーに接続しようとしています。これは私のクライアントコードです:

<!-- cordova script (this will be a 404 during development) -->
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<script src="lib/angular-socket-io/socket.js"></script>
<script src="lib/angular-sails/src/ngSails.js"></script>
<script src="lib\socket.io-client\socket.io.js"></script>
<script src="lib/sails.io.js/sails.io.js"></script>
<script type="text/javascript">
    io.sails.useCORSRouteToGetCookie = false;
    io.sails.url = 'http://178.62.83.248:1337/';
</script>

ブラウザを開くと、次のエラーが表示されます。

        Socket is trying to reconnect to Sails...
_-|>_-  (attempt #1)


  sails.io.js:136  
    Socket is trying to reconnect to Sails...
_-|>_-  (attempt #2)

再接続を試み続けます(停止しません)。私はすでにsocket.ioを使用してサーバー上でチャットを構築していますが、それはローカルにあったので、corsと関係があると確信しています.

4

2 に答える 2

4

問題は、Sails のバージョンと Sails.io.js のバージョンの不一致である可能性があります。で Sails v0.10.5 アプリを生成するとsails generate new、sails.io.js の適切なバージョンが提供されます。しかし、あなただけnpm install sails.io.jsの場合は、Socket.io 1.0 を使用して、Sails の差し迫った v0.11 リリースで動作するように設計された最先端のバージョンを入手できます。

ここで行う最も簡単な方法は、Sails が使用するファイルをダウンロードすることです。ここから入手できます。

于 2015-01-29T22:59:17.840 に答える
0

ここでも同じ問題があります。正常に動作している Sailsjs サーバーがあり、node.js アプリをそれに接続したかっただけです。Sails.js Web サイトごとにリンクされている次のコードを試してみましたが、同じ応答が得られました。

npmリストはsailsがsocket.ioの0.9.17バージョンを使用し、私は1.3.2を使用していることを示唆しているため、socket.io-clientバージョンからのものである可能性があると思います。

var socketIOClient = require('socket.io-client');
var sailsIOClient = require('sails.io.js');

// Instantiate the socket client (`io`)
// (for now, you must explicitly pass in the socket.io client when using this library from Node.js)
var io = sailsIOClient(socketIOClient);

// Set some options:
// (you have to specify the host and port of the Sails backend when using this library from Node.js)
io.sails.url = 'http://localhost:1337';
// ...

// Send a GET request to `http://localhost:1337/hello`:
io.socket.get('/', function serverResponded (body, JWR) {
  // body === JWR.body
  console.log('Sails responded with: ', body);
  console.log('with headers: ', JWR.headers);
  console.log('and with status code: ', JWR.statusCode);

  // When you are finished with `io.socket`, or any other sockets you connect manually,
  // you should make sure and disconnect them, e.g.:
  io.socket.disconnect();

  // (note that there is no callback argument to the `.disconnect` method)
});
于 2015-01-27T10:38:44.450 に答える