このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
ratchet:0.4:push [2020/12/01 13:22] y2sunlight [WebSockサーバー] |
ratchet:0.4:push [2020/12/01 17:32] (現在) y2sunlight [ブログ投稿ページ] |
||
|---|---|---|---|
| 行 431: | 行 431: | ||
| \\ | \\ | ||
| - | ==== ブログポスト | + | ==== ブログ投稿ページ |
| 新しいブログ投稿を処理する為のコードは、新規に作成し直しました。このコードは '' | 新しいブログ投稿を処理する為のコードは、新規に作成し直しました。このコードは '' | ||
| 行 467: | 行 467: | ||
| <script src=" | <script src=" | ||
| <script src=" | <script src=" | ||
| - | <!-- stylesheet --> | ||
| - | <link href=" | ||
| <!-- javascript --> | <!-- javascript --> | ||
| <script src=" | <script src=" | ||
| 行 490: | 行 488: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | * ブログが投稿された時(POSTメソッドでは)、WebSocketサーバーへPHPのソケット関数(stream_socket_client)を使い、メッセージを送信しています。\\ \\ | ||
| + | * GETメソッドでこのスクリプトが呼び出された場合は、投稿用のHTMLをレンダリングします: | ||
| + | * ブラウザ表示用のフレームワークとしてbootstrapを使用しています。 | ||
| + | * 投稿ページは '' | ||
| \\ | \\ | ||
| 行 495: | 行 498: | ||
| ==== クライアントサイド ==== | ==== クライアントサイド ==== | ||
| - | クライアントサイドのパーツは '' | + | クライアントサイドのメインのソースコードは上に掲載した [[#ブログ投稿ページ|entry.php]] 内のHTMLです。メインで使っている他のソースコードは以下の通りです。 |
| - | + | ||
| - | * template --- ブログ画面のスタブになるHTMLを保存 | + | |
| - | * js --- WebSocketとの接続、購読の設定を行うJavaScriptを保存 | + | |
| - | クライアントサイドのメインのソースは上の [[#entry.php]] 内のHTMLです。この他に、メインが使っている以下のソースコードから構成されています。 | + | * template/entry.template.php --- ブログ投稿画面のHTML |
| + | * js/main.js --- WebSocketとの接続、購読を行うJavaScript | ||
| + | * js/ | ||
| - | >TODO: 説明 | + | 以下は、ブログ投稿画面のHTMLです。このコードは '' |
| - | 以下は、・・・ | + | |
| {{fa> | {{fa> | ||
| - | < | + | < |
| < | < | ||
| <form method=" | <form method=" | ||
| 行 542: | 行 543: | ||
| </ | </ | ||
| - | >TODO: 説明 | + | 以下は、WebSocketとの接続、購読を行うJavaScriptです。このコードは '' |
| - | 以下は、・・・ | + | |
| - | + | ||
| - | {{fa> | + | |
| - | + | ||
| - | >TODO: 説明 | + | |
| - | 以下は、・・・ | + | |
| {{fa> | {{fa> | ||
| - | < | + | < |
| /* | /* | ||
| * Subscribe Session | * Subscribe Session | ||
| 行 569: | 行 564: | ||
| </ | </ | ||
| - | >TODO: 説明 | + | * ページロード時に、WebSocketサーバー( <nowiki>ws:// |
| + | * 他のユーザが「kittensCategory」のブログを投稿した時、''# | ||
| + | |||
| + | === WAMP(V1)について === | ||
| + | |||
| + | WAMP(V1)のJavaScriptライブラリーは、以下に設置します: | ||
| + | |||
| + | < | ||
| + | {Project-Folder}/ | ||
| + | </ | ||
| + | |||
| + | このライブラリーは、以下より取得して設置しました。 | ||
| + | |||
| + | < | ||
| + | https:// | ||
| + | </ | ||
| + | |||
| + | この autobahn.js は、WAMP のバージョン1対応のライブラリです。Ratchet は WAMP のバージョン2をサポートしていないので、敢えて [[https:// | ||
| + | |||
| + | '' | ||
| + | |||
| + | WAMPとは WebSocket Application Messaging Protocol の略で、次の機能を提供するWebSocketのサブプロトコルです。 | ||
| + | * ルーティングされたリモートプロシージャコール | ||
| + | * パブリッシュ & サブスクライブ | ||
| + | |||
| + | 詳しくは以下を参照: | ||
| + | * https:// | ||
| \\ | \\ | ||
| + | |||
| + | ==== プログラムの実行 ==== | ||
| + | |||
| + | コマンドプロンプトでプロジェクトフォルダに移動してWebSocketサーバーを起動します。 | ||
| + | |||
| + | < | ||
| + | php bin/ | ||
| + | </ | ||
| + | |||
| + | ブラウザで '' | ||
| + | |||
| + | [{{: | ||
| + | |||
| + | [{{: | ||
| + | |||
| + | \\ | ||
| + | |||
| + | |||
| + | |||