私はLaravel 4で書かれたWebアプリケーションを手に入れました。このアプリケーションは、ラチェットを使用しており、より具体的には、パッケージLatchetを使用しています。追記として、私は次の方法を使用しています:私がすべきスライドショーを持ってウェブソケットを使用する場合のベストプラクティス?
- :
- AutoBahn JS
- ZeroMQ
- Ratchetは今、私は次のシナリオを得ましたwebsocketを通じて更新を受信します。
- アプリケーション全体がセットアップされており、私はZeroMqを通じてPHPからWebsocketクライアントに新しいコード変更を公開できます。私のroutes.phpで
トピックが正しく登録されるように、私は、次のコードを持っている:
//routes.php // Setup a connection and register a topic where clients can connect to. Latchet::connection('Connection'); Latchet::topic('PhotoStream/{client}', 'PhotoStreamController');
その後、私はラチェットサーバを起動します。
sudo php artisan latchet:listen
写真がアップロードされても、私はその後、私のトピック(この場合はPhotoStream/client1
)を聞いているクライアントに更新をプッシュし、次のコードを実行することができます。
// Create the object, save it to db and then publish it to my websockets
$photo = new Photo;
$photo->location = 'path/to/file';
$photo->save();
// Publish it through my websocket clients. (push from server).
Latchet::publish('PhotoStream/client1', array('msg' => $photo->toArray()));
このコードはすべて動作しますが、更新の場合です。私の質問は以下の通りです:
クライアントの初期化はどうしたらいいですか?
- 私は最初にプレーンな古いPHPでページをレンダリングしてから、Websocketクライアントを初期化して、それ以上の更新を受けなければなりませんか?
- 新しいWebSocketクライアントを登録するときに、サーバーがWebSocketを通じて完全なデータを送信するように、追加パラメータを要求に付ける必要がありますか?
2つのオプションのうちの後者は、私にとって最良の選択肢だと思われますが、これをどのようにして良い方法で実装するのか分かりません。
もっと回答がありましたら幸いです。私はlaravelでウェブソケットを実装する旅を始めています。私はほとんど分かりませんが、私の検索は続けられます。 –
間違いなく更新してください! –
まあ、間違いなくBrainSocketsは使用しないでください。彼らはv1.0になっていると言いますが、サーバーをプッシュすることは不可能です。別のソケットプラグインを試してみると、私は戻ってきます。 –