1

我正在尝试运行 Ratchet WebSocket 服务器,该服务器可以DataObject从 SilverStripe 实例访问 s ,该实例可以作为终端的长时间运行进程运行。

我目前的方法是使用与定义相同的数据库配置cli-script.php包含core/Core.php并连接到数据库model/DB.php_config.php

有没有更好的方法不涉及复制代码cli-script.php?虽然我只有一个可以启动服务器的控制器,但这听起来也是错误的。

另一个想法是将它们分开并使用 SS REST API 在它们之间进行交互,但与 PHP 对象交互会更简单。

4

1 回答 1

1

最后,我彻底改变了设计,让所有消息都通过 SilverStripe 实例(来自客户端的 Ajax),然后通过 REST API 推送 WebSocket 消息。

在研究托管此类进程时,我偶然发现了 Pusher,我现在将其用于系统的实时方面。

简而言之:

  1. JS 客户端使用 Ajax 通知 SilverStripe 应用程序发生更改。
  2. SilverStripe 应用程序将更改保留在数据库中。
  3. SilverStripe 应用程序使用他们的 API / PHP 库通过 Pusher 推送消息。
  4. Pusher 通过 WebSocket 连接将消息发送到所有其他连接的客户端。
于 2014-06-10T14:56:05.747 回答