在SilverStripe中运行的棘轮Web套接字服务器

时间:2014-02-26 16:54:27

标签: php websocket silverstripe ratchet

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

我当前的方法,从cli-script.php开始,包括core/Core.phpmodel/DB.php,并使用_config.php中定义的相同数据库配置连接到数据库/ p>

有没有更好的方法来执行此操作并不涉及从cli-script.php复制代码?虽然我有一个控制器启动服务器,但听起来也错了。

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

1 个答案:

答案 0 :(得分:1)

最后,我将设计转向了头部,并通过SilverStripe实例(来自客户端的Ajax)传递了所有消息,然后通过REST API推送WebSocket消息。

在考虑托管此类流程时,我偶然发现了Pusher,我现在正在使用该系统的实时方面。

简而言之:

  1. JS客户端使用Ajax通知SilverStripe应用程序。
  2. SilverStripe应用程序会在数据库中保留更改。
  3. SilverStripe应用程序使用他们的API / PHP库通过Pusher推送消息。
  4. Pusher通过WebSocket连接将消息发送给所有其他连接的客户端。