eventsslackwebsocketこうみると割とバラバラ。ob_get_clean();以下の部分が非常に大事。eventsの特徴の一つに、以下の点がある注意すべき点として、EventSourceはサーバーから接続が切断された場合再接続を試みるという点があります。404が返ってきたとか、サーバーに繋がらないとか、そういうときは再接続はしません。一度はつながったのに切れてしまった場合には、再接続を試みるのです。(CLOSED)というのは、もう再接続もできず終了してしまったという状態を指します。接続が切れて再接続したとき、一番最後に受信したイベントのIDがLast-Event-IDというHTTPヘッダとなってサーバーへ送られます。これにより、サーバー側はこのクライアントがイベントをどこまで受信したのか知ることができます。サーバー側をうまく作れば、再接続時は続きからイベントを配信するというようなことも可能でしょう。10秒が経過すると、自動で接続が切れますが、自動的にそのあともクライアント側から接続を試みます。そのときに、最後に取得したチャット内容をサーバーサイドが把握していないと、再接続のしょっぱなに不必要(すでに送られている)なチャット内容をクライアント側に返してしまうということが起こってしまいます。そのために、最後にクライアントに送ったidをLast-Event-IDを探しに行きます、存在しなかった場合はid=0としてまるっとチャット全部をクライアントに返します。},EventSourceのインスタンスに対して、リスナをつけるだけですサーバーからメッセージが送られた時は、先ほどのeventに設定した名前でイベントが発生します。}}</script>ちなみに、上のvueファイルでは、bulma,buefy,vue-routerを使っています。eventsのデメリットとしてあげられることの多かったクライアントからリクエストを送信できない点ですが、上のvueファイルにあるようにsseとは別のリクエストで送信すると問題なく登録できたので、あまり不自由には感じませんでした。upLoginユーザーは見つかりませんでした。