タグ

websocketに関するkammのブックマーク (15)

  • スマホゲームの未来なネットワークプロトコル - Qiita

    mixiグループ Advent Calendar 2017 23日目の記事です はじめに XFLAGスタジオでファイトリーグ1というゲームエンジニアをしている @kodam です。日は日頃から考えているゲームサーバの未来の話をしようと思います。 スマホゲームの問題 スマホゲームは年々すごいリッチになり、ユーザが期待するレベル高い現状があります。 それにともなって問題点や課題点がたくさんあります。 3Dグラフィックスやリアルタイムな通信は当たり前で、ストレスフルなユーザ間コミュニケーションが可能なものが多いです。また対戦ゲームも人気があり、下図のクラロワ2のようにリアルタイムでどこに何のユニットが置かれたかという情報に遅延が許されないものがあります。また全世界で同時プレイされるようなゲームだと、0ダウンタイムでのサーバ更新なども要求されます。 セキュリティ面だと、サーバサイドにロジックを

    スマホゲームの未来なネットワークプロトコル - Qiita
  • Phoenix で Redis の Pub/Sub を使って WebSocket をスケールアウトさせる - Qiita

    WebSocket を利用するアプリケーションは Pub/Sub サーバを使ってスケールアウトさせるのが一般的です。 今回は Redis の Pub/Sub 機能を使って Phoenix の WebSocket をスケールアウトさせてみます。 Phoenix で WebSocket 通信をさせる方法はコチラをご参照ください。 事前知識: WebSocket アプリケーションのスケールアウトについて 通常の Web アプリケーションにおけるスケールアウトは、サーバ台数を増やしてロードバランサでリクエストを分散させる、というのが一般的ですが、WebSocket アプリケーションではこの手法が使えません。 なぜかというと、WebSocket アプリケーションはコネクションをサーバ内で管理するステートフルな作りになっているためです。冗長化させたサーバにリクエストを分散させてしまうと、他サーバで接続

    Phoenix で Redis の Pub/Sub を使って WebSocket をスケールアウトさせる - Qiita
  • Websocket Shootout: Clojure, C++, Elixir, Go, NodeJS, and Ruby

    Websocket Shootout: Clojure, C++, Elixir, Go, NodeJS, and Ruby by Jack Christensen on September 1, 2016 When a web application has a requirement for real time bidirectional communication, websockets are the natural choice. But what tools should be used to build a websocket server? Performance is important, but so is the development process. A performance benchmark alone is not enough. We also need

    Websocket Shootout: Clojure, C++, Elixir, Go, NodeJS, and Ruby
  • 大量接続に耐える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
  • Redis の Pub/Sub を使って Node.js + WebSocket のスケールアウトを実現する方法

    Node におけるスケールアーキテクチャ考察(Scale 編)というエントリーを読んで、RedisはPub/Sub型通信をサポートしているという事を知りました。エントリーでも言及されているように、Pub/Subを使えば Node.js + WebSocket サーバをスケールする際に、中継サーバの役割を果たす事が出来るはずです。 そんな訳で実際に Node.js と Redis を使って Pub/Sub の実験を行なってみました。ユーザが別々のNode.jsサーバに接続していてもWebSocketを通してメッセージのやり取りを出来るようにします。 イメージとしてはこんな感じです。 下準備# Ubuntuの場合は apt-get で1発でインストールする事が出来ます。 $ sudo apt-get install redis npmでredisモジュールをインストールします。 $ npm i

    Redis の Pub/Sub を使って Node.js + WebSocket のスケールアウトを実現する方法
  • 「ぬこしょうぎ」におけるリアルタイム通信 - かばちんのエンジニアブログ

    リアルタイム将棋「ぬこしょうぎ」をリリース 先日こんなアプリをリリースさせて頂きました。 ぬこしょうぎ - ヤルキマントッキーズ株式会社 将棋をモチーフにコマの動きは将棋そのままで、将棋からターン制をバッサリと取り除いたゲームです。 ルールはシンプルなので将棋を知らない方でも楽しめる仕様になっています。 (不思議なことにターン制を取り除いてもやっぱり将棋を知っている人が若干有利になるようです!) 通信をどのような構成で、何を使ってやっているか ◆サーバサイド(コネクションサーバ) クライアントからの WebSocket 接続を受け付けるサーバ。 知人が作成した nginx-luajit-websocket-pubsuber を利用して WebSocket 接続を受け付けている。 github.com 簡単に説明すると、nginx で接続を受け付けて WebSocket コネクションを維持し

    「ぬこしょうぎ」におけるリアルタイム通信 - かばちんのエンジニアブログ
  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

    概要 AWS ECS でマルチプレイゲーム用インスタンスの管理すると限りなく最強。 はじめに リアルタイム・マルチプレイゲームを作る時、まず考えられることは、あるプレイヤーの行動や状態が他のプレイヤーに伝わることではないかと思われます。しかし、スマートフォンアプリは不安定であったり、複数端末同士で(基地局やバックボーンを介さずに)物理的に直接接続することは出来ませんし、理論的にできたとしても、だいたい開発が進んでいくうちに排他制御の問題などで炎上、もしくはとん挫してしまいます。軽い気持ちでマルチスレッド処理をおこない事故る現象と全くおなじです。 もっとも簡単な解決方法としてはマルチスレッド処理のときようにクリティカルセクションを設けることです。ようはサーバを用意してそこで処理すれば、比較的容易に一意な結果が得られますし、接続に関する問題も起こりにくくなります。 長くなるので → http:

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
  • リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm

    NOTE: 記事はすでに内容が古く、今読んでも役に立つ度合いはほぼないです。 記事は、先日社内勉強会のために準備した、Webサービスのリアルタイム通信周りのまとめシリーズ の1つを転載して公開するものです。 まだまだわかっていないことが多いので、ぜひぜひ間違っている点などにご指摘いただければと思い公開します。 ぜひぜひ優しくマサカリをいただけると泣いて喜びます! 目次 目次 はじめに プロトコルと手法 前世代のやり方であるComet について Polling 系 Streaming 系 過渡期といわれてる手法 将来有望といわれてる手法 Polling メリット デメリット 向いているシーン Long Polling (Comet) Polling の発展版 メリット デメリット LongPolling 自体は双方向通信ではない 接続が閉じられるケース 向いているシーン Server S

    リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm
  • Unite 2015 Day2 めも - mattak's blog

    Session1: Autodesk Session & Workshop 建築用のデータ (BIM) -> ゲーム用のデータ (FBX) 階層で分ける みえるところ 床、地面など ゲームに特化する 建築は厚みがあるが、ゲームでは板ポリでよいものがおおい 底の厚さを削除. ある程度の粒度でまとめてしまう 階段一枚の板ポリにする UV 必要ならMayaでUVつくる 気軽に取り組めばよい Material Mayaで管理しやすいように色分けする. データを作り分ける 要素ごとの色分け. 壁、床、エレベータ、・・・ Data Conversion REVit ARCHITECTURE -(fbx)-> Maya -(fbx)-> Unity Unityでの配置 Texture / Materialの設定 2pattern: 一つ一つ作って配置? Mayaで全部作って1ファイルで持ってくる? ひと

    Unite 2015 Day2 めも - mattak's blog
  • 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 サンプルを書き直してみた - おなか周りの脂肪がやばい
  • Windows 8 のネットワーク接続 - Windows 8 と WebSocket プロトコル

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 Windows 8 と WebSocket プロトコル Kenny Kerr WebSocket プロトコルの目的は、接続を確立して要求と応答のペアを開始する全責任をクライアントが担う Web 環境で、双方向通信を実現することです。これにより、アプリケーションは TCP のメリットを Web に適した方法で活かすことができるようになります。WebSocket プロトコルは、2011 年 12 月にインターネット技術標準化委員会 (IETF) によって標準化されただけで、この記事の執筆時点では World Wide Web コンソーシアムでもいまだ検討中であることを考えると、Windows 8 でこの新しいイン

    Windows 8 のネットワーク接続 - Windows 8 と WebSocket プロトコル
  • DevSumiでHerokuの公開負荷テスト(?)をした話

    2/14にDevSumiHerokuとWebSocketを使ったデモをやってきました。 今回はそのデモの総括です。 ★概要(番前) 今回僕が担当したのは吉田パクエ氏のネタセッションでのデモです。 年末に10分の持ち時間でHerokuの良いところをアピールできるデモをなんかやってくれないかというお話をいただきました。 その頃僕はちょうど初めて自分でWebSocketアプリを実装してみたところで、この技術がどの程度実用的なものなのかという点に興味を持っていました。 なので、何かしらWebSocketを使ったデモをやろうと思い作ってみたのがこれです。 http://ws-vote.herokuapp.com/rooms/demo ボタンを押すと数字がカウントアップされるだけの極単純なアプリですが、WebSocketを使っているので誰かがボタンを押すと同じ画面を見ている全員の端末で数字がカウン

  • WebSocketsでチャットを作ってみる! — PythonMatrixJp

    WebSocketsってなにができるの? WebSocketsは双方向ストリーム通信ができる規格。 最もメジャーなHTTPは同期型といい、 クライアントからサーバーへつなぎに行く。 クライアントからサーバへデータを送信する。 サーバーからクライアントへデータを返信する。 接続を切断する。 以上をセットで繰り返し、データの交換を行ないます。 HTTPではこの手順が規定されているので、手順3.に進んでから手順2.をやりたかったら 手順4.まで進めて最初から手順を踏んでいかなければなりません。 手順3.だけを繰り返したい場合も基のこの手順セットを繰り返す必要があります。 これが双方向ストリーム通信の場合、手順1.を予め実行し繋ぎっぱなしにします。 手順2.や手順3.は随時好きなタイミングで実施できます。 これは手順4.を実施するまで任意の回数手順2.や手順3.を実行できます。 データが欲しい側

  • Introducing WebSockets - Bringing Sockets to the Web  |  Articles  |  web.dev

    Introducing WebSockets - Bringing Sockets to the Web Stay organized with collections Save and categorize content based on your preferences. The problem: Low latency client-server and server-client connections The web has been largely built around the so-called request/response paradigm of HTTP. A client loads up a web page and then nothing happens until the user clicks onto the next page. Around 2

    Introducing WebSockets - Bringing Sockets to the Web  |  Articles  |  web.dev
  • 1