【问题标题】:Sails 0.9.4, socket.io, newbieSails 0.9.4,socket.io,新手
【发布时间】:2014-05-12 18:32:46
【问题描述】:

刚刚开始使用 Sails 和 Socket.io。我正在关注文档并在这里设置一个简单的测试项目:

https://github.com/timfulmer/sails-sockets

根据 Sails 文档http://sailsjs.org/#!documentation/sockets,套接字订阅是在第一次套接字调用时设置的:

socket.get()、socket.post() 等是新 Sails 项目中包含的客户端 SDK 中可用的方法。在此示例中,我们将使用它们通过 Socket.io 与后端通信。请注意,无论您是否使用 CRUD 蓝图,都可以使用这些方法。

测试项目使用 CRUD 方法定义了一个快速模型/控制器。它使用socket.get 连接到套接字,并正确接收之前发布的模型实例。

使用socket.post 发布一个新实例使其到达 Sails 服务器并创建新实例。但是,新实例永远不会发送到使用socket.get 创建的连接。即使在两个不同的浏览器选项卡中运行页面。

此外,使用来自浏览器的 GET 请求发布会挂起并且永远不会返回。

我是在错误地阅读文档还是犯了其他新错误?

谢谢,

-- 提姆

【问题讨论】:

  • 你还没有向你的仓库提交任何代码。 > 但是,新实例永远不会发送到使用 socket.get 创建的连接。你的意思是实时更新?返回使用socket.on('message', function(data))
  • 对代表感到失望,我为空的回购评论投了你的票 :) 代码已被推送,对此感到抱歉。在assets/js/app.js 中有一个socket.on 调用,这是默认sails 生成的存根的一部分。看起来应该可以,但事实并非如此。
  • 尝试删除控制器中的所有内容。所以你只是在导出一个空的 obj。让 Sails 蓝图在刚开始时完成工作。 - 另外 - 在您请求模型之前,您不会订阅它。尝试先让客户get('/socketupdate')

标签: node.js socket.io sails.js


【解决方案1】:

好的,结果完全是新手错误。当发出新消息时,Sails 不会神奇地调用传递给 socket.get 的函数。帆是魔法,但不是那种魔法。事实证明,必须实现如何处理 assets/js/app.js 中的新消息。椅子和键盘之间的问题,帆摇晃!

编辑

更新了示例项目以使用 Sails.js + Socket.io + Backbone.js + CORS,Backbone.js 前端与 Sails.js 后端分开托管(在 s3 中):

https://github.com/timfulmer/sails-sockets

涉及很多小问题。

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2015-12-21
    • 2018-03-14
    • 2015-11-20
    • 2012-05-28
    • 2014-12-12
    相关资源
    最近更新 更多