Подключитесь с клиента к серверу с поддержкой паруса

Я пытаюсь подключиться к своему серверу под парусом с моего клиента Cordova, используя библиотеку sails.io. это мой код клиента:

<!-- 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.

2 ответа

Решение

Вероятно, ваша проблема связана с несоответствием между вашей версией Sails и вашей версией sails.io.js. При создании приложения Sails v0.10.5 с sails generate new, это дает вам соответствующую версию sails.io.js. Но если вы просто npm install sails.io.jsвы получите новейшую версию, которая предназначена для работы с готовящимся выпуском Sails v0.11 с использованием Socket.io 1.0.

Здесь проще всего скачать файл, который будет использовать Sails, который вы можете получить здесь.

Та же проблема здесь, у меня есть сервер sailsjs, который работает нормально, просто хотел подключить к нему приложение node.js. Я попробовал следующий код, найденный здесь как связанный с сайтом sails.js, и я получил те же ответы.

Я думаю, что это может быть из версии socket.io-client, поскольку список npm предполагает, что sails использует версию 0.9.17 socket.io, а я использую 1.3.2.

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)
});
Другие вопросы по тегам