クライアントとしての私のphonegapアプリケーションとサーバとしての私のLaravelウェブサイトの間でデータ同期プロセスを実装するために、非常に簡単で非常に基本的なwebsocketをLaravelに実装する必要があります。私はこのチュートリアルhttp://www.binarytides.com/websockets-php-tutorial/を実行してwebsocketを実装しテストしています。このように、私はjsクライアントから自分のコントローラメソッドを呼び出すことができる非常に単純なララベルの実装が必要です。クライアントは私のphonegapアプリケーションになります。私はチュートリアルでlaravelのwebsocketのパッケージをいくつか見つけましたが、実装が難しいと感じました。コントローラーと対話していた人はいませんでした。イベントを聞いていて、コントローラーではなくクラスを作成していました。コントローラにすべてのロジックを書き、Ajaxリクエストでテストしましたが、同期プロセスを実装するために双方向通信が必要なため、websocketで実装します。私はLaravelに新しいので、私にいくつかの助けを提供してください。また、クライアントが直接データを送信するためにコントローラを呼び出すことができるように、チュートリアルのチュートリアルをlaravelに統合する方法を誰かに教えてもらえればとてもうれしいでしょう。laravelのシンプルなwebsocket実装5
答えて
私はbrainboxlabsのbrainsocket(https://github.com/BrainBoxLabs/brain-socket)を使い終わった。そのドキュメントにはlaravel 4パッケージが記載されていますが、laravel 5でも問題なく動作します。
このパッケージをlaravelとともにインストールするには5.上記githubのリンクのドキュメントに従ってください。アプリケーションフォルダ内にevent.phpファイルを作成し、いくつかのイベント関連のコードを作成すると言うところです。この手順の代わりに、イベント関連のコードをapp/Providers/EventServiceProvider.phpファイルに追加するだけです。その起動方法において、
Event::listen('generic.event',function($client_data){
return BrainSocket::message('generic.event',array('message'=>'A message from a generic event fired in Laravel!'));
});
Event::listen('app.success',function($client_data){
return BrainSocket::success(array('There was a Laravel App Success Event!'));
});
Event::listen('app.error',function($client_data){
return BrainSocket::error(array('There was a Laravel App Error!'));
});
このステップの後APP /スタート/ global.phpに
require app_path().'/filters.php';
require app_path().'/events.php';
を添加する工程があったされたコードを追加します。このステップをLaravel 5のままにしておくことができます。
これでWebソケットが実装されました。コマンドartisan brainsocket:start
を実行して、cmdを使用してwebsocketサーバを起動することでテストできます。必要に応じてport artisan brainsocketを提供することができます。start 9000
もう1つの要件は、残りのタスクを実行するためにコントローラを呼び出すことでした。このため私はプロバイダパッケージに直接編集しました。私はこれが良い方法ではないので、これをお勧めしません。コンポーザーを使用してパッケージを更新すると、変更が失われます。だから、より良い選択肢を見つけなければなりません。しかし、その1行だけが変更されます。ベンダーの\ brainboxlabsで
\脳ソケット\ SRC \ BrainSocket \ BrainSocketServer.php私は "開始" と
$this->server = IoServer::factory(
new HttpServer(
new WsServer(
new \FMIS\Http\Controllers\SynchronizationController(
new BrainSocketResponse(new LaravelEventPublisher())
)
)
)
, $port
);
そして、私のSynchronizationControllerファイル内で
$this->server = IoServer::factory(
new HttpServer(
new WsServer(
new BrainSocketEventListener(
new BrainSocketResponse(new LaravelEventPublisher())
)
)
)
, $port
);
を置き換える方法でコードを編集しました。
私はこのようなトップ
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
use BrainSocket\BrainSocketResponseInterface;
実装されたインタフェース上でこれを追加しました。
class SynchronizationController extends Controller implements MessageComponentInterface{
このメソッドのメソッドを実装しました。
機能を実装するには、これらの方法を変更する必要があります。その後、jsクライアントから電話をかけることができます。また、jsライブラリを使用する必要はありません。このチュートリアルhttp://www.binarytides.com/websockets-php-tutorial/で説明されているjsクライアントを使用してデータを送信するだけです。
誰かがその実装に関してもう助けを必要としているかどうかを教えてください。
おい、すばらしい説明。 +1。ベンダーのファイルを実際に変更することなくコントローラを使用できるかどうか疑問に思っていましたか? laravelの更新を自由にインストールすることができます。ご協力いただきありがとうございます。 – Learner
@Learnerでは、brainSocketクラスを拡張するカスタムソケットクラスとコマンドを作成できます。自分ではできませんが、それを見て、私がやることです。 – sourRaspberri
残念ながら、BrainSocketはLaravel 5.5で動作するようにソースを更新していません... – AmjadoV
- 1. Laravel 5 - Slugの実装
- 2. 蔵DataServiceのシンプルな実装
- 3. シンプルなモバイルリダイレクト/ディープリンクの実装
- 4. KerasシンプルなRNNの実装
- 5. シンプルなiCloudの実装
- 6. Divs Overlayシンプルな実装
- 7. シンプルなC#のWebSocketをサーバー
- 8. Laravel 5 - 動作しないFlashメッセージの実装
- 9. Azureの簡単な実装websocket
- 10. POCO用のシンプルなキャッシュの実装
- 11. JavaFX - シンプルなカスタム最小ウィンドウの実装
- 12. シンプルなC++スレッドプール実装のクエリ
- 13. JavaでシンプルなLinkedListの自己実装
- 14. TornadoノンブロッキングWebSocketサーバー実装
- 15. シンプルなRTSPクライアント/例を実装する
- 16. Androidでシンプルなサービスを実装する
- 17. Refactor My CodeがLaravel 5のリポジトリを実装しています
- 18. scala/akka/playのシンプルWebsocket
- 19. Laravel 5でテーマを実装する方法
- 20. HTML 5 WebSocket
- 21. iOS 5 segueの実装
- 22. WebSocket with Laravel 5.2
- 23. Laravel WebSocket Chat
- 24. ファイルストレージへの実装Laravel
- 25. Laravel雄弁イベントの実装
- 26. Railsの5 - 純粋のWebSocket
- 27. シンプルなホステル予約システムの可用性をモデル化するには? (Laravel 5)
- 28. JavaFx2.0のゲームフレームで使用するシンプルな状態マシンの実装
- 29. WebSocketを実装して、PHPの理論と現実
- 30. iosh 5でviewcontrollerのシンプルな "Wait"アニメーション
Socket.ioをノードサーバーで実行することをお勧めします。 –
クライアント側でシンプルなjsソケットを使いたいです。それはphonegapと一緒に働くので、私は物事を単純にしたいと思っています。 – hassan
実際にsocket.ioを使用すると、ごくわずかなコードでWebsocket接続ができます。それが私が個人的に実装した方法です。 –