我正在尝试使用库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有关。
答案 0 :(得分:4)
您的问题可能与您的Sails版本和您的sails.io.js版本不匹配。当您使用sails generate new
生成Sails v0.10.5应用程序时,它会为您提供相应版本的sails.io.js。但是,如果您只是npm install sails.io.js
,那么您将获得最新版本,该版本旨在使用Socket.io 1.0即将发布的Sails v0.11版本。
这里最简单的事情就是下载Sails会使用的文件,你可以获得here。
答案 1 :(得分:0)
同样的问题,我有一个运行良好的sailsjs服务器,只是想连接一个node.js应用程序。我尝试了以下代码here作为链接每个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)
});