首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sails的bootstrap.js文件中添加websocket "put“请求:找不到io

在sails的bootstrap.js文件中添加websocket "put“请求:找不到io
EN

Stack Overflow用户
提问于 2016-05-12 08:01:10
回答 1查看 238关注 0票数 0

我需要从sails中的bootstrap.js文件调用一个套接字请求。bootstrap.js文件包含一些代码,用于检查某个游戏引擎是否更新了某个文件。如果是这样的话,它需要通过套接字向某个已定义的名为“/update”的路由发送一条包含一些更新数据的消息……例如:

代码语言:javascript
复制
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,然后写道:

代码语言:javascript
复制
var io = require('sails.io.js')( require('socket.io-client') );

在顶端。不幸的是,它给出了以下错误消息:

代码语言:javascript
复制
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)

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-12 18:09:32

好的。一旦为socket.io-client和sails.io.js完成了npm安装,它现在就可以工作了,如果我完全执行以下操作的话:

代码语言:javascript
复制
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 ');
                })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37175138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档