タグ

WebSocketに関するakatakunのブックマーク (12)

  • "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes

    追記 11/12/26 MLのスレッドへのリンクが間違っていたので修正。 introduction WebSocket なんかをつかって、従来のステートレスな処理以外に、コネクションを継続するステートフルな処理が可能になりました。 これを利用すると、これまで実装が難しかったリアルタイムな表現を Web に持ち込むことができます。 そして、 WebSocket を用いたプログラムを作成する上で、Node.js と Socket.IO を用いる方法について、 今年はこのブログでも何度か紹介してきました。 今日は今年一年の集大成として、自分が色々試しながら得たリアルタイム Web に関する知識、技術などを、 ここにまとめてアウトプットしたいと思います。 今回お話しするのは、 東京Node学園 3時限目 : ATND で発表した下記内容の抜粋です。 Node Academy | "About Sl

    "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes
    akatakun
    akatakun 2020/10/23
    素晴らしい知見
  • 大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]

    WebSocketの扱うサービスでは、長時間のコネクション、再接続処理、プロキシ、ロードバランサなど、インフラの面で多くの問題を抱えがちです。弊社のサービス「pixiv」の9周年企画でも、この問題に直面しました。 実際にそこで構築したインフラの事例をもとに、運用に使えるWebSocketサーバの構成について、pixivインフラ部の南川からご紹介します。 * 9周年企画 “黒歴史”をロケットで宇宙に飛ばす pixiv歴史 そもそも WebSocket とは? WebSocketはTCP上で動く双方向通信のための通信規格です。 Webページの読み込みで行われているような、クライアントがサーバにデータを要求し、サーバはクライアントにレスポンスを返すというHTTPの通信ルールとは違います。サーバと長時間コネクションを確立し、Socketのようにデータのやり取りを行います。そして、コネクションを

    大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]
  • Socket.IOでメッセージが届いたことを確認する - Qiita

    WebSocket使ってると、クライアントからサーバーにメッセージ送って、届いたのがはっきりしてから何かしたいことがあったりします。WebSocketの仕様その物にはそういう機能は無いようですが、Socket.IOにはそういう機能があったのでこれが使えました。 (低レベルの話を期待していた方、済みません) ドキュメントに書いてあることそのままではあるんですが:Sending and getting data (acknowledgements) Socket.IOのacknowledgements機能 emitするクライアント側のコード、サーバー側のonで待ち受けるブロックのコード、のそれぞれでコールバック関数を登録することで、クライアントからのメッセージが届いた時の処理を書けます。処理を書けるということは、届いたことが確認できるということです。 // クライアント側 var ws = i

    Socket.IOでメッセージが届いたことを確認する - Qiita
  • Socket.ioで作ったWebSocketサーバをELBでロードバランスする - Qiita

    課題 現在、作っているサービスではsocket.ioを使って作ったWebSocketサーバをELB経由で使っています。 開発環境はELB配下にEC2が1台で、番環境は複数台です。 これ、どちらも正しく動いているように見えていたんですが、最近セットアップした番環境の方でWebSocketへのUpgradeがうまくいっておらず、pollingで動いていることに今日気がつきました。 サービスとしてはまぁ一応問題はないんですが、WebSocketで動いていると思っていたものが実はPollingだったというのはわりかし衝撃です。 原因 なんでやねんと思ってググるとわりと簡単に原因に行き当たりました。公式ドキュメントで思いっきり説明されています。 日語だとこの辺でが参考になります。 Express / Socket.IO をスケールアウトしてみよう Socket.IO or WebSocket

    Socket.ioで作ったWebSocketサーバをELBでロードバランスする - Qiita
  • WebSocket Echo Server

    WebSocket Echo Server We run a free very simple endpoint server with support for websockets and server-sent events (SSE) so that you can test your websocket and SSE clients easily. The server is designed for testing HTTP proxies and clients. It echoes information about HTTP request headers and bodies back to the client. The endpoint is https://echo.websocket.org/ Behavior Any messages sent from a

    akatakun
    akatakun 2018/06/22
    WebSocketのテストができる
  • Possible to mount multiple ActionCable cables?

    akatakun
    akatakun 2018/06/06
    ログインユーザと非ログインユーザのための複数のチャンネルを持つ方法
  • The Practical Guide to Using ActionCable | HackerNoon

    Most guides and blog posts around ActionCable focus around simple chat apps to show the typical websocket workflow. That is great, but how is ActionCable suppose to fit into your everyday SaaS-like Rails application?

    The Practical Guide to Using ActionCable | HackerNoon
  • Rails 5 ActionCable — The good and bad parts – Ably: Serious, serverless realtime infrastructure

    Rails ActionCable — The good and bad partsRails 5 has recently introduced WebSocket support via ActionCable. It’s a great move towards realtime for the Rails community, however I think developers need to understand its strengths and weaknesses before rolling it out into production environments. Please note that I am the co-founder of Ably, a scalable realtime messaging platform-as-a-service. As su

    Rails 5 ActionCable — The good and bad parts – Ably: Serious, serverless realtime infrastructure
  • ActionCable.server.broadcast from the console

    I can use the following code in the controller but not in the console (both development environment). I'm using Rails 5.0.0.beta2. ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>' The console: >> ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>' [ActionCable] Broadcasting to example_channel: {:message=>"<p>Test</p>"} => [] How can I use it in the console?

    ActionCable.server.broadcast from the console
    akatakun
    akatakun 2018/06/06
    開発モードのデフォルトはasyncで同一プロセス内でのみ動作するため別プロセスからブロードキャストすることができない。プロセス間ブロードキャストしたい場合はredisアダプターに切り替える
  • Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より) - Qiita

    【注意!】この記事はRails 5.0.0.beta1を対象にしています。最新のRails 5では仕様が変わっている可能性もあるので注意してください。 はじめに 先日、Rails 5のAction Cableを使ったシンプルなチャットアプリの作り方をDHH氏がYouTubeで公開していました。 Rails 5: Action Cable demo - YouTube 動画を見ながら僕もコードを写経してみたので、その内容をこちらで紹介してみます。 なお、ここで紹介するのはコードだけで、DHH氏の発言は完全に再現していません。 発言内容を確認したい人はオリジナルの動画をチェックしてみてください。 チャットアプリの完成形 今回は下のような非常にシンプルなチャットアプリを作成します。 ソースコード 今回作ったコードはGitHubにアップしています。 JunichiIto/campfire コードを

    Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より) - Qiita
  • WebSocketについて調べてみた。 - Qiita

    実はけっこう前からWebSocketの詳しい仕組みについて気になってて、遂に一念発起して調べてみた。何かとても良さげっぽい。 そもそもWebSocketとは Webにおいて双方向通信を低コストで行う為の仕組み。インタラクティブなWebアプリケーションではサーバから任意のタイミングでクライアントに情報の送信とかしたい事があって、例えばFacebookのチャットアプリみたいに多数のクライアントが一つのページにアクセスしてて誰かがメッセージを投稿するとそれをその他のユーザーに通知したい場合があって、そういった時に双方向通信の必要性が出てくる。 元々はWebにおいてはHTTPしか通信の選択肢が無くてHTTPのロングポーリング使って無理矢理双方向通信実現したりしてたんだけど、流石に無駄が多すぎるし辛いよねって事でWebSocketというプロトコルが作られた。 WebSocketにおいては、TCP上で

    WebSocketについて調べてみた。 - Qiita
    akatakun
    akatakun 2017/06/23
    WebSocket: Webにおいて双方向通信を低コストで行う為の仕組み,HTTPプロトコルにUpgradeとConnectionヘッダなどを拡張している,コネクションを確立して保持する
  • サーバからクライアントに送信する技術 - WebSocketを中心に - Qiita

    Webでのプッシュ技術 HTTPはクライアント(ブラウザ)からリクエストしてサーバからレスポンスが返る一問一答型のプロトコルなので、基的にはサーバ側からブラウザに新着情報をリアルタイムで通知(プッシュ)できるようにはできていません。 しかしそれでもプッシュをしたいという場合にどうするかという話が出てきます。やり方には以下のようなものがあります。 ポーリング クライアントからサーバに定期的に新着を問い合わせるようにします。 最も原始的かつ確実なやり方。欠点は、最大でポーリング間隔の分だけ通知が遅延しうることです。 ロングポーリング(“COMET”) ポーリングなのですが、問い合わせを受けたサーバは新着情報がなければレスポンスを返すのをしばらく保留します。 そのあいだに新着情報が発生すれば即座にレスポンスを返しますし、一定時間経過したら何もなかったとレスポンスを返しましょう。 飛び交う通信内

    サーバからクライアントに送信する技術 - WebSocketを中心に - Qiita
    akatakun
    akatakun 2016/08/25
    ポーリング,ロングポーリング,XMPP,WebSocket
  • 1