sails 0.10.0-rc7
Sails Socket IO:客户端未收到服务器的响应。
使用蓝图中内置的 sails,我尝试使用此功能从我的服务器获取信息。 (我希望使用默认行为)
客户端
//Client on different server (localhost:8000)
//Sails server
var socket = io.connect('http://localhost:1337');
socket.get('/event',function serverSays(err,events){
if (err)
console.log(err)
console.log(JSON.stringify(events));
});
服务器
事件模型
module.exports = {
schema : true,
attributes: {
name : {
type : 'STRING',
maxLength: 50,
required: true
}
}
};
在服务器终端(日志)中:
详细:客户端已授权 详细:握手授权 4TGNw-ywabWYG9j-AHaC 详细:设置请求 GET/socket.io/1/websocket/4TGNw-ywabWYG9j-AHaC?__sails_io_sdk_version=0.10.0&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript 详细:为客户端 4TGNw-ywabWYG9j-AHaC 设置心跳间隔 详细:客户端授权 详细:websocket 写入 1:: 详细:socket.io 客户端 (4TGNw-ywabWYG9j-AHaC) 连接成功!
但是我客户端上的回调从未被调用???
看起来好像客户端与服务器连接..
有什么建议吗?
编辑
我必须强调,客户端和 sails 服务器运行在不同的服务器上。执行 io.connect(localhost:1337) 时的握手根据服务器日志正确与服务器对话。
其后续操作 socket.get("/Event") 不会产生任何结果。根据服务器日志,我想说它永远不会到达服务器......
最佳答案
我想我只需留下一张便条,因为我现在正在实现我的实现。
事实证明,我犯了一个相当尴尬的错误/假设。
使用 Sails js 的浏览器 SDK,我使用以下方式连接到远程服务器:
io.connect("serverurl")
然后愉快地开始我的工作,尝试执行各种套接字功能,例如socket.get..
我没有做的是之后
io.connect("url")
我仍然必须通过监听套接字上的连接事件来确保我的应用程序确实已连接到服务器:
socket.on("connect",function())...
一旦我解决了这个小难题,一切就顺利进行了!
我还必须声明,我相信遇到此问题的原因是因为我试图在 sails run (init) 函数中执行初始连接和后续请求。因此,我的后续操作很可能是在应用程序和服务器成功建立连接之前执行的。
我相信,如果初始连接(io.connect)和后续操作在单独的用户流中执行,那么所有操作都将是因为连接肯定已经建立了。
关于node.js - Sails V0.10-rc7 通过 Socket.IO 使用 REST 蓝图从数据库获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23897311/