【发布时间】:2014-04-06 01:24:27
【问题描述】:
我又一次无法正确回答自己的问题,可能是因为我对 EmberJS 缺乏经验。
我必须在 EmberJS 中开发一个管理界面,使用 Symfony 2 作为后端,它的行为和感觉应该像一个桌面应用程序。到目前为止一切都很好,但是由于很多人将使用此应用程序中的数据,我真的很想为 EmberJS 使用 WebSocket 适配器实现,因为每个连接的客户端都应该立即(或尽快)知道实体的变化。我可以为 EmberJS 编写一个 WebSocket 适配器,但我的问题是 WebSocket 将比 RESTful 操作做更多的事情,服务器也将在没有任何 EmberJS 请求的情况下发送消息(例如,实体已更改,服务器将此更改广播给所有客户端)。这意味着我需要一个基于 RESTful 操作的“命令”结构,就我的经验而言,它不适用于纯 DS 适配器。
例如:
也许我会触发一个控制器方法来发送这样的 websocket 消息:
{command: "say", parameters: {message: "Hello guys!"} }
此命令与实体 (DS) 无关,永远不会进入应用商店。
另一个例子是这样的:
{command: "load entity", parameters: {type: "Vendor\Bundle\Entity\Type", id: 43} }
这将加载应该存储在应用商店中的实体。
好吧,正如我所说,我对 EmberJS 不是很熟悉,所以我可以弄清楚哪种方法可能是最好的。我应该完全绕过 DS 适配器并在加载实体后检查“isDirty”和推送方法吗?我很高兴你有任何想法!
【问题讨论】: