2

チャット アプリケーションの例。

Mr A (07-Aug-2017 15:01) : みなさんこんにちは
Mr B (07-Aug-2017 15:20) : こんにちは Mr A

サーバーの日時 (dd-mmm-yyyy hh:mm) は、サーバーによって挿入されます。ラチェットで簡単にできます。
Ratchet.Wamp.WampServerInterface api ドキュメント OnPublish
内で、実際に公開する前にメッセージを修正できます。

Thruway は同じことができますか? Thruway のドキュメントが見つかりません。例は表示されますが、必要なものが見つかりません。スルーウェイの例

4

1 に答える 1

3

これを達成する必要がある場合は、少し異なるアーキテクチャを使用すると思います。WAMP の考え方は、ルーターを非常に一般的なものに保つことだと思います。そのため、この例はありません。

「すべてのアプリケーション固有のコードは、ルーター自体ではなく、WAMP アプリケーション コンポーネントに存在する必要があります。」—トバイアス

そうは言っても、やりたいことを実行するのはそれほど難しくありませんが、メッセージを傍受する必要があります。理想的には、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);
    }
}

次に、起動時にデフォルトの Router の代わりにこのクラスを使用します。

このコードはまだ試していませんが、機会があれば試してみます。しかし、アイデアはうまくいくはずです。

于 2014-08-07T13:52:19.627 に答える