我需要从sails中的bootstrap.js文件调用一个套接字请求。bootstrap.js文件包含一些代码,用于检查某个游戏引擎是否更新了某个文件。如果是这样的话,它需要通过套接字向某个已定义的名为“/update”的路由发送一条包含一些更新数据的消息……例如:
io.socket.put('/update', {history:{sessions:[1,2,3,4]}},function gotResponse(body, response) {
console.log('Server sending request ot server ');
})问题是,它告诉我,io不被识别。我尝试为sails.io.js和socket.io-client安装npm,然后写道:
var io = require('sails.io.js')( require('socket.io-client') );在顶端。不幸的是,它给出了以下错误消息:
C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\socket.io-client\lib\url.js:29
if (null == uri) uri = loc.protocol + '//' + loc.host;
^
TypeError: Cannot read property 'protocol' of undefined
at url (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\socket.io-client\lib\url.js:29:29)
at lookup (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\socket.io-client\lib\index.js:44:16)
at goAheadAndActuallyConnect (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\sails.io.js\sails.io.js:835:21)
at selfInvoking (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\sails.io.js\sails.io.js:812:18)
at SailsSocket.SailsIOClient.SailsSocket._connect (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\sails.io.js\sails.io.js:831:9)
at null._onTimeout (C:\Users\Evolver\Documents\programming\pipegame\game6\node_modules\sails.io.js\sails.io.js:1463:17)
at Timer.listOnTimeout (timers.js:92:15)有什么想法吗?
发布于 2016-05-12 18:09:32
好的。一旦为socket.io-client和sails.io.js完成了npm安装,它现在就可以工作了,如果我完全执行以下操作的话:
var socketIOClient = require('socket.io-client');
var sailsIOClient = require('sails.io.js');
// Instantiate the socket client (`io`)
var io = sailsIOClient(socketIOClient);
io.sails.url = 'http://localhost:1337';
// then I send something via my socket
io.socket.put('/update', {history:{sessions:[1,2,3,4]}},function gotResponse(body, response) {
console.log('Server sending request ot server ');
})https://stackoverflow.com/questions/37175138
复制相似问题