聊天应用程序示例。
A先生(2017年8月7日15:01):大家好 B先生(2017年8月7日15:20):你好A先生
服务器插入服务器日期时间(dd-mmm-yyyy hh:mm)。我可以在Ratchet中轻松完成。
Ratchet.Wamp.WampServerInterface api document
在OnPublish中,我可以在真正发布之前修改消息。
高路可以这样做吗?我找不到任何高速公路文档,我看到了示例但没找到我想要的内容。Thruway Examples
答案 0 :(得分:3)
我认为如果我需要完成此任务,我会使用稍微不同的架构。我相信WAMP的想法是保持路由器非常通用。这就是为什么我们没有这方面的例子。
“所有特定于应用程序的代码都应该驻留在WAMP应用程序组件中,而不是驻留在路由器本身中。” -tobias
话虽如此,做你想做的事情仍然不会太难 - 但需要拦截这些信息。理想情况下,覆盖Broker会很好 - 但我们现在没有通用的方法来切换它。所以我们可以覆盖路由器并检查每条消息:
class MyRouter extends Router {
public function onMessage(TransportInterface $transport, Message $msg) {
if ($msg instanceof PublishMessage) {
if ($msg->getTopicName() == "mytopic") {
// mangle the message in here
}
}
parent::onMessage($transport, $msg);
}
}
然后在启动时使用此类而不是默认路由器。
如果我有机会,我还没有尝试过这段代码。这个想法应该可行。