タグ

websocketに関するhohoho_ho2005のブックマーク (57)

  • WebSocketとGoroutineによるリアルタイムのグラフ表示 – (2)サーバサイド | DevelopersIO

    はじめに 前回はWebSocketとGoogle Chartsを使用したクライアントサイドについて書きました。今回はツイートを受信し、指定された単語の出現回数をカウントし、WebSocketでクライアントに送信するサーバサイドについてです。 サーバサイドの実装 サーバサイドはGolangを使用しました。大きく分けてmain処理、WebSocket、共通処理に分かれます。一つずつソースを載せていこうと思います。 main処理 まずはmain処理のソースです。以下のようになります。 main.go package main import ( "flag" "fmt" "html/template" "net/http" "net/url" "os" "strings" "アプリのフォルダパス/util" "github.com/ChimeraCoder/anaconda" ) var twee

    WebSocketとGoroutineによるリアルタイムのグラフ表示 – (2)サーバサイド | DevelopersIO
  • Locustを利用したMQTT over WebSocketの性能テスト - バスキュール技術ブログ

    はじめまして。 バックエンドエンジニアの会津(@ido)です。 2016年に携わった案件「流星放送局」ではサイトを訪問している大量ユーザーにプッシュ通知を行う必要がありました。 Websocketサーバ実装といえばSocket.IOなどがありますが、昨今の流行りに乗って自前で開発はせずサーバレスでフルマネージメントなAWS IoTのMQTT over WebSocketを利用して実装しました。 疎通まではコンソールからAWS IoTの設定するだけの簡単なお仕事なのですが、大量のWebsocket接続へのプッシュ通知がどの程度遅延するかを計測するというなかなか骨の折れそうな性能テストをしなければなりません。 ただ流石にこんなニッチな性能テストができるサービスは存在していなかったので、Locustを利用してテストを行いました。 なぜLocustなのか 普段Pythonばかり書いているのでテスト

    Locustを利用したMQTT over WebSocketの性能テスト - バスキュール技術ブログ
  • WebSocket 入門 - RAMBO

    WebSocket の概要 何者? WebSocket は通信プロトコルの 1 つです。ウェブサーバーとウェブブラウザとの間で双方向通信を可能とする規格です。API を W3C が、プロトコルを IETF が中 心となって規格策定を 進めています。 HTTP を応用した既存の双方向通信技術の欠点を解決する技術として開発されています。 元々は HTML5 の仕様の一部として策定が進められていましたが、現在は HTML5 から切り離され、独立したプロトコルとして規格策定作業が進められています。 ウェブサーバーとウェブブラウザ間で双方向通信ができるようになると、ウェブサーバからウェブブラウザに対して情報を Push することが可能になります。これはすなわち、Ajax を使ったなんちゃってリアルタイムアプリケーションではなく、当のリアルタイム アプリケーションが実現できるようになるということです

    WebSocket 入門 - RAMBO
  • 大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]

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

    大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]
  • WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD

    Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。

    WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD
  • サーバからクライアントに送信する技術 - WebSocketを中心に - Qiita

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

    サーバからクライアントに送信する技術 - WebSocketを中心に - Qiita
  • いまさら聞けないWebSocketとSocket.IOの基礎知識&インストール

    連載「Socket.IOで始めるWebSocket超入門」では、WebSocketを扱うことができるNode.jsのライブラリ「Socket.IO」を使って、サンプルアプリケーションを構築していきます。 具体的には、チャットを題材とし、送受信されるメッセージ内容が即時反映されるリアルタイムかつ双方向なWebアプリケーションの構築を目標とします。さらに構築の中で、Socket.IOの各種ライブラリの使い方について解説することで、Socket.IOを使ったWebSocketの実践方法を体系的に学びます。 いまさら聞けないWebSocketとは WebSocketはリアルタイムWeb技術の一種であり、リアルタイムかつ双方向な通信を実現するプロトコルです。WebSocket通信では、コネクション確立時にHTTPからWebSocketへプロトコルを切り替えます。1度コネクションが確立されると、「w

    いまさら聞けないWebSocketとSocket.IOの基礎知識&インストール
  • WebSocketには注意が必要 | POSTD

    近い将来WebSocketがRailsで使用できるようになると聞くと、デベロッパはみんな舞い上がって興奮します。 しかし、 あなたのユーザは、あなたがWebSocketを使用しているかどうかなんて気にしません 。 ユーザは、”快適なリアルタイムWebアプリ”を求めている。 デベロッパは、”快適でビルドが簡単なリアルタイムWebアプリ”を求めている。 オペレーションは、”デプロイ、スケール、管理が簡単なリアルタイムWebアプリ”を求めている。 上記全ての要望をWebSocketがかなえてくれるのなら素晴らしいことですが、この実装の詳細は高いコストがかかります。 超高性能で全二重なクライアントとサーバ間の通信は、当に私たちに必要なのか? WebSocketは、クライアントに情報を配信するための簡単なAPIと、クライアントからWebサーバへ情報を送信するための簡単なAPIを提供します。 サーバ

    WebSocketには注意が必要 | POSTD
  • WebSocketプロトコル

    1. The document discusses RESTful APIs and gRPC, comparing their characteristics and use cases. 2. RESTful APIs typically use HTTP and JSON to access resources via URLs while gRPC uses protocol buffers and HTTP/2 for efficient streaming and RPC. 3. gRPC is better suited for microservices and mobile apps due to its ability to handle streaming and performance, while REST is more widely used due to i

    WebSocketプロトコル
  • [システム間連携]接続方向を逆転させるとうまくいく - Qiita

    システムAの更新内容を、別のサーバにあるシステムBにも反映させるためにデータ送る、というケースを考えます。 主流はWeb APIかMOMを使う方法かと思います。(俯瞰的な話は、20日目のこざけさんが書いてくれる、はず) しかし、A,B間で同時に一貫性を保たなくても良いケースは、企業間システム連携ではよくあります。 CAP定理でいうところの可用性+分断耐性をとりにいくパターンです。が、最大数秒程度で結果整合性は保ちにいきます。 システム間の接続 非同期ながら、ほぼリアルタイムでデータを反映していくので、応答性の高い接続手段が求められます。だが中間経路をHTTPでないプロトコルを通すハードルが高かったり、ファイヤーウォールなどで長時間接続を切られたりする問題があるので、私はよくWebSocketを使います。 だいたいの構成は以下のようになります。同期エージェント間をWebSocketでつなぎ、

    [システム間連携]接続方向を逆転させるとうまくいく - Qiita
  • WebSocket and Web Application Framework - Qiita

    WebSocket はネットワークの双方向通信の規格で、リアルタイム通信の用途で利用されています。 Web Application Framework の Phoenix は WebSocket を標準でサポートしています。 Rails も Action Cable で WebSocket の利用がサポートされるようになります。 そこで Express を合わせて3つの Framework で WebSocket のサンプルを作成しました。 ( bash コマンドの brew は Mac OS X で利用できます。他OSは適宜のコマンドを利用してください。 ) Node.js on Express Express は JavaScript が言語の Web Application Framework です。 Socket.IO という WebSocket のライブラリが有名です。 Setu

    WebSocket and Web Application Framework - Qiita
  • Node.js+Socket.IOで作る、通信対戦ができるHTML5ゲームシステムの作り方

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!きっず開発担当です。 昨年Yahoo!きっずにてブラウザオンラインゲーム「おしゃべりリバーシ」をリリースしました。 ※おしゃべりリバーシは2015年10月をもってサービス終了しました。ご利用いただきまして、ありがとうございました。 このゲームは、通信対戦部分の通信プロトコルWebSocketを採用し、サーバミドルウェアにNode.js+Socket.IOを採用しました。この結果、ブラウザゲームでありながらマルチデバイスでの対戦を実現しました。 今回は、Node.js+Socket.IOによるWebSocketサーバのシステム構築方法について考慮すべきポイントを、「おしゃべりリバーシ」の実例を紹介しながら説

    Node.js+Socket.IOで作る、通信対戦ができるHTML5ゲームシステムの作り方
  • Golang の websocket サンプルを書き直してみた - おなか周りの脂肪がやばい

    Golang の勉強がてらちょっとしたツールを作ろうと思って、まず websocket サーバーを書いてみた。 書いてみたと言っても go の websocket chat は golang-samples/websocket · GitHub ここにサンプルがあって、これをそのまま使っても良かったのだけれどいくつか気になったのでよりシンプルに書き直してみた。 hatz48/go-websocket-sample · GitHub 気になったのは二つあって、一個は client id が競合しそうに見えた点。 https://github.com/golang-samples/websocket/blob/master/websocket-chat/src/chat/client.go#L35 ここで maxId をインクリメントしている. この NewClient 関数は https:/

    Golang の websocket サンプルを書き直してみた - おなか周りの脂肪がやばい
  • 「リアルタイムWEBを実現する技術」の触りを知っておく為のまとめ - Qiita

    概要 socket.ioについて周辺技術の触りをまとめておく これだけ知ってれば後から調べやすいはず 覚えること Socket.io Websocket ノンブロッキングI/O node.js Socket.ioって何? Socket.ioのページを参照 「Socket.IOは、リアルタイム双方向イベントベースの通信を可能にします。」 「これは、信頼性とスピードに均等に焦点を当て、すべてのプラットフォーム、ブラウザやデバイス上で動作します。」 解りにくいので簡単に書くと 幾つかの通信方式とサーバー、ブラウザ、デバイス間の通信を抽象化してくれるライブラリでいいはず Socket.ioが対応している通信方式 Socket.IO protocol xhr-polling xhr-multipart htmlfile websocket flashsocket jsonp-polling 抽象化し

    「リアルタイムWEBを実現する技術」の触りを知っておく為のまとめ - Qiita
  • Lambda Lab - ホーム

    サービス ソフトウェア開発 サーバ開発 マイクロサービス開発 ウェブソフトウェア開発 データ処理 データ分析 アナリティクス 機械学習 Webソリューション ウェブソフトウェア開発 CMS構築 静的サイトジェネレーター導入 ビジネスメモ 社名変更のお知らせ - 2015年8月20日 一覧 技術メモ メールのバックアップ - 2015年8月26日 Erlang WebサーバCowboy - WebSocket編 - 2014年10月8日 Erlang WebサーバCowboy入門 - 2014年9月24日 一覧

  • 私立プログラミングキャンプに行ってScala+PlayでWebSocket通信してみた - Lambdaカクテル

    どうも。Windymeltです。 僕は今はてなサマーインターンで京都に滞在しており、id:masawadaが私立プログラミングキャンプのお誘いをしてくれて僕も参加してきたのでそのレポートです。 私立プログラミングキャンプははてなオフィスで行われたため迷わず会場に来ることができました。会場では大量のレッドブルとサイボウズウォーターが配給?されてメンバーの戦意を高揚させていました。 このキャンプ、ひとたび自己紹介が終わればいきなり作業に突入するタイプのイベントのようです。事前に何もする目標を決めていなかったので恐怖以外のなにものでもありませんでしたが、なんと同じScalaユーザであるUAdachiさんに遭遇したためScalaプログラミングをすることにしました。わいわい。 今回の技術的目標はScalaによるWebSocketを利用したXFD(eXtreme Frrdback Device)の作成

    私立プログラミングキャンプに行ってScala+PlayでWebSocket通信してみた - Lambdaカクテル
  • Server Sent Events(SSE)の使いどころと使い方 | GREE Engineering

    Flameの箱を捨ててしまったためどうやって送り返すか困っています。@kyo_agoです。 今日は2014年6月にβ公開したGREEチャットで通信に使用しているSSEを紹介したいと思います。 SSEとは SSEとはServer-Sent Eventsの略でW3Cで提案されているhtml5関連APIの一種です。 これはサーバとの通信やJavaScript APIを中心としたもので、サーバからPush通信を行うための仕様です。 サーバからPush通信に関してはこれまでもCometやWebSocketが存在しましたが、SSEは互換性や効率などの点でそれ以外の技術に対する特徴があります。 ここからは具体的な仕様や、実際に使用した場合の感想などを紹介したいと思います。 通信方式 SSEはHTTP/1.1を使用し、Content-Type: text/event-streamで通信を行います。 基

    Server Sent Events(SSE)の使いどころと使い方 | GREE Engineering
  • あなたにWebSocketは必要ないかも | POSTD

    (訳注:2015/8/4、いただいた翻訳フィードバックを元に記事を修正いたしました。) 題に入る前に強調しておきます。WebSocketは優れた通信プロトコルです。実際私はこの RFC6455 を、 Fanout のサービスで使っている( Zurl や Pushpin といったパーツで採用しています。Fanoutではまた、 Primus (異なるリアルタイムフレームワーク間での通信を可能とするラッパー)を利用し、 XMPP-FTWインターフェース を介したWebSocket通信をサポートしています。 しかしながら私はこれまで、多くの広く普及しているアプリケーションにかなりの時間を費やし、おかげでRESTやメッセージングパターンについては多少なりとも理解が深まってきた今、実はWebSocketを実装した典型的なWebアプリケーション(もしくはWebSocketライクな抽象化レイヤ)の大部分

    あなたにWebSocketは必要ないかも | POSTD
  • LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog

    LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回

    LINE DEVELOPER DAY 2016 開催のお知らせ « LINE Engineers' Blog
  • PlayとRedisでスケーラブルWebSocket

    日2目。 年末から突発的に1人でWebSocketブームです。(^^v 概要レベルの知識はあったんですが、実際に触ってみると思った以上に使える技術で応用範囲も広そうな気がします。 これは楽しい! さて、スケールアウトするWebSocketアプリを作ろうと思ったらどうやらRedisが必修らしいので、Redisにも手を出してみることにしました。 この記事はそのまとめです。 ★Redisとは Memcacheの亜種。というのがこれまでの理解だったんですが、まぁだいたいあってます。基的にはいわゆるKey-Valueストアです。 ですが実際にはMemcacheよりも遥かに高機能です。 ちゃんとドキュメントを読んだわけではないですが、ざっくりとMemcacheよりも優れている点を上げてみると List, Set, Mapなどの集合を値として扱える キーの一覧が取得できるなど管理系のコマンドがある