小编Jea*_*ean的帖子

EmberJS和WebSocket | 最佳方法?

我有一个我无法正确回答的问题,也许是因为我缺乏与EmberJS的合作.

我必须在EmberJS中开发一个管理界面,使用Symfony 2作为后端,它应该像桌面应用程序一样运行.到目前为止一切都那么好,但由于很多人都会使用这个应用程序中的数据,我真的想使用EmberJS的WebSocket适配器实现,因为每个连接的客户端应该总是立即(或asap)知道实体的变化.我可以为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"以及加载实体后的推送方法?你对任何想法都感到高兴!

websocket ember.js

2
推荐指数
1
解决办法
2728
查看次数

Symfony 2.6中的Doctrine Entity Listener

根据如何使用Sytrfony 2.4的Doctrine Entity Listener?在Symfony中设置实体监听器功能应该非常简单.

不幸的是,我的听众nevers被召唤,我不知道为什么.我已经检查了doctrine包的编译器传递以及DefaultEntityListenerResolver类.我的监听器被传递给寄存器方法,然后应该可用.另一方面,解决方法似乎从未被调用过.

这是我的服务定义:

insite.entity.listener.page_node:
    class: NutCase\InSiteBundle\Entity\PageNodeListener
    tags:
        - { name: doctrine.orm.entity_listener }
Run Code Online (Sandbox Code Playgroud)

这是我的倾听者:

namespace NutCase\InSiteBundle\Entity;

use Doctrine\ORM\Event\LifecycleEventArgs;

class PageNodeListener
{
    public function prePersist( PageNode $node, LifecycleEventArgs $event )
    {
        die("okay");
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里我的实体yaml:

NutCase\InSiteBundle\Entity\PageNode:
    type: entity
    table: page_node
    repositoryClass: NutCase\InSiteBundle\Entity\PageNodeRepository

    fields:
        title:
            type: string
            length: 255
            nullable: false

        segment:
            type: string
            length: 255
            nullable: false

        url:
            type: string
            length: 255
            nullable: false

        root:
            type: boolean
            nullable: false

        hidden:
            type: boolean
            nullable: false
Run Code Online (Sandbox Code Playgroud)

我已经在YAML中添加了一个"entityListeners"条目,因为我认为这个条目丢失了:

entityListeners:
  - …
Run Code Online (Sandbox Code Playgroud)

doctrine symfony entitylisteners

1
推荐指数
1
解决办法
1496
查看次数

标签 统计

doctrine ×1

ember.js ×1

entitylisteners ×1

symfony ×1

websocket ×1