Web標準のHTTPクライアントfetch()でストリーミングしながらアップロードできるようになる。
NOTE: 本記事はすでに内容が古く、今読んでも役に立つ度合いはほぼないです。 本記事は、先日社内勉強会のために準備した、Webサービスのリアルタイム通信周りのまとめシリーズ の1つを転載して公開するものです。 まだまだわかっていないことが多いので、ぜひぜひ間違っている点などにご指摘いただければと思い公開します。 ぜひぜひ優しくマサカリをいただけると泣いて喜びます! 目次 目次 はじめに プロトコルと手法 前世代のやり方であるComet について Polling 系 Streaming 系 過渡期といわれてる手法 将来有望といわれてる手法 Polling メリット デメリット 向いているシーン Long Polling (Comet) Polling の発展版 メリット デメリット LongPolling 自体は双方向通信ではない 接続が閉じられるケース 向いているシーン Server S
ブラウザ間でリアルタイム通信を実現する WebRTCのプラットフォーム「SkyWay」の提供開始 およびライブラリ・ソースコードの公開について ~国内初の公開トライアルで、WebRTCの普及を促進~ NTTコミュニケーションズ(略称:NTT Com)は、ブラウザ間でリアルタイム通信を実現するWebRTC(Web Real-Time Communications)技術を活用するために開発したプラットフォーム「SkyWay」の無償提供と、ソフトウェア開発支援サービスGitHub*1上における「SkyWay」のライブラリ・ソースコードの公開を開始します。「SkyWay」のプラットフォームやライブラリの利用によって、WebRTC技術を利用したWebアプリケーション(音声や映像を使ってコミュニケーションできるアプリケーションなど)の開発を簡単にすることができます。 1.背景・目的 (1) WebRT
WebRTCを使えば、このようなリアルタイムコミュニケーションを行うWebアプリケーションを作ることができるのです。 WebRTCの通信形態 WebRTCの特徴の1つは、通信をP2P方式で行う点です。通常のWebサイトでは、ブラウザとサーバの間で通信を行います。また、WebRTCとよく比較される規格に「WebSocket」がありますが、WebSocketでは必ずWebブラウザとサーバ間で通信を行うことになっています。チャットなど、ユーザ同士でデータをやり取りを行うのに使われることもありますが、その場合も必ずサーバを介して通信します。 一方、WebRTCはサーバを介さず、P2Pによりユーザ間で直接通信を行うため、レスポンス性がより高い通信を実現できます。また、下位層のプロトコルに(TCPでなく)UDPを使っていることから、品質よりもリアルタイム性を重視した通信方式といえるでしょう。 API仕
World Wide Web Consortium(W3C)は、中央管理されたサーバを介する必要なく、ブラウザ間で直接PtoP通信できるようにするための規格を策定する予定である。 規格の策定を担当するW3C作業部会のメンバーらによると、このような規格が策定されれば、政府がウェブ通信に対して抑圧的な措置をとることが困難になる可能性があるという。W3Cは英国時間5月5日、同作業部会は、音声、ビデオ、および「補助的な」リアルタイム通信によってブラウザが通信できるようにするAPIの定義を目指すと述べた。 「W3Cは5日、ウェブブラウザ間のリアルタイム通信を可能とするために、クライアントサイドのAPIを定義することを目的としたWeb Real-Time Communications Working Groupを新たに設立した」とW3Cは述べた。 このAPIにより、他に何かをダウンロードしたりプラグイ
2019年7月6日、株式会社サイバーエージェントが主催するイベント「Battle Conference U30」が開催されました。30歳以下のエンジニアによる30歳以下のエンジニアのための技術カンファレンスである本イベントには、さまざまな領域で活躍する若手が登壇。企業の枠を超えて、自身の技術・事業・キャリアに関する知見を発表しました。「モンスターストライクのリアルタイム通信を支える技術 」に登壇したのは、株式会社ミクシィ・神谷元太氏。登壇資料はこちら モンストの大まかな構成と「STUN/TURN」 神谷元太氏:それでは「モンスターストライクのリアルタイム通信を支える技術」というタイトルで発表させていただきます。よろしくお願いします。 (会場拍手) まず最初に軽く自己紹介をさせていただきたいと思います。2018年に株式会社ミクシィに新卒入社をしました。開発本部CTO室SREグループの神谷と言
これはなんらかのアドベントカレンダーの何日目かの記事だったりしません。 KOBA789 です。仕事では人工衛星の搭載ソフトウェアを書いたり、人工衛星の管制システムのソフトウェアを書いたりしています。 先日、こういうツイ……ポストをしたらちょっとバズりました。意外と興味持ってくれる人が多かったので、それに関連するオタク早口記事でも書くかぁと思って筆を執っています。 うちの人工衛星の開発ツールはウェブ技術でできている 前述のポストは管制システムについてですが、開発用ツール(C2A DevTools)もまた React + TypeScript でできています。 まぁ画面見てもなにがなんだかという感じだと思いますが、UNIX サーバーで top コマンド叩いたときの内容と、サーバーのログが合体したみたいなものが表示されていると思ってください。 これらの数値は gRPC-web の Server-
こんにちは。Webエンジニアの田島です。 みなさんは今までサービスやコンテンツを作っていて、以下の様なことを思ったことはないでしょうか。 Web上でユーザ同士がチャットできる機能を実装したい Google Driveのように、複数人で同時にファイルを編集できる機能を提供したい パソコンとスマートフォンを連動させて、スマートフォンからパソコンを操作できるようにしたい Raspberry Piで取得した値を即時にWeb上で見られるようにしたい これらを実現するために共通する必要な要素が「リアルタイム通信」です。 今までリアルタイム通信を実装するには、サーバーを用意し、Node.jsやWebSocketといった技術を使ってリアルタイム通信特有のプログラムを記述する必要があったのですが、今回紹介するMilkcocoaというサービスを使えば、それらがなんとサーバーを用意することなく、フロントエンド側
こんにちは。 今回は、当社で稼働させているリアルタイム通信環境について、ご紹介させて頂きます。 ご紹介する環境に対する要件は、以下となります。 ・ゲーム内の期間限定イベントで使用し、イベント開催中のみサーバを稼働 ・リアルタイム通信。プロトコルは、websocket を使用 ・同じチームに所属するユーザを同じサーバへ接続 ・とりあえずいっぱいスケールできるように(笑 最後の要件は冗談で、実際にはちゃんとした数値を頂いているのですが、このような環境構築を依頼されましたので、AWS 上で以下にあるような構成を考えてみました。 構成図 ※ 主要なサーバのみを抜粋 ELB 外部のクライアントから、websocket な接続を受け付けます。 http(s) モードでは、websocket の通信確立に必要なヘッダが消去されてしまうため、tcp モードを使用しています。 tcp モードを有効にすると、
エフェクトのキャッシュ 今回は断念 Activeにしたときに別の座標に表示されることがある ParticleSystems以外の制御もあった カメラ外にいるやつの座標の指定がうまくいかなかった スプライトアニメーションとかモーションでアニメを制御していたりとか キャッシュする前提で作られていなかった GPU側のボトルネック マップ画面で処理落ち 端末によってはバトルよりも重い シェーダーの問題 原因は海のシェーダ 描画面積が多い フラグメントシェーダが原因 フラグメントをとにかく軽く フラグメントシェーダーでアニメーション計算をしていた フラグメントで計算する必要がないものをバーテックスシェーダに移した バーテックスシェーダへ波の計算を移動 使っていない変数に計算後の値をセット シェーダの一括変換 必要のないカラー計算をしているシェーダーを一括変換 PC用のシェーダーを使ってしまっているも
btraxでは、IoTデバイスの市場調査、UX研究を目的に、IoTプロトタイプを開発している。現在進行しているのは、社内に取り付けられたミラーボールをインターネットに接続し様々なツール(Google Apps連携、Slack連携など)から遠隔で操作するプロジェクト。 今回は社内エンジニアが、開発の過程で得られたRaspberry PiというシングルボードコンピュータとPubNubというリアルタイム通信が可能なmBaaS(Mobile Backend as a Service)を用いて、インターネット上から簡単にLEDの点灯を行うプロトタイプの開発方法を紹介する。Raspberry Pi2のセットアップから1から説明する。 Raspberry PiとはRaspberry Pi(ラズベリーパイ)はARMプロセッサを搭載したシングルボードコンピュータである。2015年2月に最新の「Raspber
ピグ事業部でサーバーサイドエンジニアをしている有馬です。 先日、弊社よりスマートフォン向けネイティブアプリとして、 「PiggPARTY」がリリースされました。 ピグパーティ iOSアプリ ピグパーティ Androidアプリ PiggPARTYは、スマートフォンのアプリ上で、 顔や洋服などの様々パーツを組み合わせて、自分好みのピグ(アバター)を作成することができ、 渋谷エリアや、原宿エリアといった現実を模したエリアや、 好みの家具で模様替えした自分のお部屋でパーティ(イベント)を開催したり、 他のユーザーと、テキストチャットやスタンプなどで、 リアルタイムにコミュニケーションを楽しむことができるサービスです。 PCアメーバピグをご存じの方には、そのスマートフォン版というと伝わりやすいかもしれません。 PiggPARTYでは、同期的なリアルタイムコミュニケーションを実現するために、 新たにリ
CTOの河合(@neuecc)です。Game Tech Session ~AWS Summit Tokyo 2017~にて「『黒騎士と白の魔王』の gRPC による HTTP/2 API/ストリーミング通信の実践」と題して登壇しました。参加いただいたみなさま、ありがとうございます。 4 月にリリースした「黒騎士と白の魔王」では、iOS/Android のモバイルアプリケーションからの全ての通信を gRPC による HTTP/2 で行っています。API リクエストからストリーミングまで、gRPC のあらゆる機能を使って実現した「黒騎士と白の魔王」のアーキテクチャについて、AWS 上でのスケーリングやデプロイを考慮した構成も含めてご紹介します。 「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践 from Yoshifumi Kawai 5/10にUnite
Easy WebSocketはWebSocketではなくリアルタイム通信を行うJavaScriptライブラリ。 Easy WebSocketはnode.js製のオープンソース・ソフトウェア。HTML5界隈が賑わっているが、なかなか実用的なものは出てきていない。動画共有サイトのスマートフォン向けインタフェースやWebブラウザ用のゲームがせいぜいではないだろうか。 チャット画面 やはりデスクトップ向けのブラウザで一部のブラウザしか対応していないのが問題なのだろう。HTML5に関連した技術、WebSocketは特にサーバ側の準備も必要で扱いづらいイメージがある。そんな常識を覆すソフトウェアがEeasy WebSocketだ。 Easy WebSocketは正しくはHTML5の仕様ではないがWebSocketを擬似的に再現する。まるでWebSocketではないかと思えるほど、リアルタイムで更新され
ブラウザ間で動画や音声のリアルタイム通信を実現するWebRTCのバックエンドサービス「SkyWay」、開発者に無償提供。NTTコミュニケーションズ Webブラウザからマイクやビデオカメラにアクセスし、相手のブラウザとピア・ツー・ピアで通信を行うことにより、プラグイン不要で容易にビデオチャットや音声チャットなどを実装できる「WebRTC」の仕様策定と実装が進んでいます。 NTTコミュニケーションズは、このWebRTCのコネクションの仲介をするバックエンドサーバ「SkyWay」、およびWebRTCを利用するためのJavaScriptライブラリのソースコードなどの提供開始を発表しました。 SkyWayを利用することで、開発者は複雑な通信制御をまかせることができます。プレスリリースから引用します。 WebRTCでブラウザ間の直接通信を開始する前には、仲介サーバーを介して通信制御を行う必要があり、そ
Cy#の河合です。Cy#は今年の9月に設立されたばかりの会社で、その名の通りC#関連の開発を行っていきます。今回はCy#よりオープンソースライブラリとして、Unity向けのリアルタイム通信/API通信統合ライブラリをリリースしました。 GitHub – cysharp/MagicOnion もともと2年前に最初に公開し、実際にリリースされたモバイルゲームでも使用していたものですが、今回リアルタイム通信向け機能をよりブラッシュアップして、正式公開としました。そういう点では、”既に実績がある”とも言えます。今回より新しいスタートということで、バージョン2.0です。 基本的な機能は サーバークライアント間のストリーミングRPCを提供します。サーバー側をC#、クライアント側もC#で実装し、メッセージのフォーマットはLZ4圧縮されたMessagePack、通信はgRPCによるHTTP/2を用いていま
SGE(Smartphone Games & Entertainment)のグレンジ所属の塚原と袴田です。 2016/04/20に開催されたリアルタイム通信ゲーム勉強会で発表してきたので報告をします。 グレンジについてCAのゲーム事業部(SGE)の中の1つです。 ・ポコロンダンジョンズ ・イグドラシル戦記 の2つを開発・運営しています。 勉強会ではポコロンダンジョンズの共闘(多人数の協力プレイ)の仕組みについて発表しました。 ポコロンダンジョンズについて2014年夏にリリースされた「なぞるパズルRPG」です。 当初は1人プレイのみでしたが、2015年春に最大4人の協力プレイ「共闘」が実装されました。 共闘はSocket.IOを使ったリアルタイム通信システムによって動作していて、勉強会ではサーバサイド/クライアントサイドの仕組みを「そこまで見せるのか」というほど公開しています。 サーバサイド
この記事は Go (その2) Advent Calendar 2016 の24日目の記事です。 この記事では 去年からずっと趣味で Go を使ってリアルタイム通信ゲームサーバー作っていて、それなりに動くものができたので、それを紹介したいと思います。 リポジトリはこちらです。 https://github.com/shiwano/submarine 一部 Unity の有償アセットを除いている以外、クライアントもサーバーもすべてのコードをここで公開しているので、もし気になる実装があったら見てみてください。 以下、簡単なディレクトリの説明です。 . ├── art # デザインまわりのファイル置き場 ├── client # Unity クライアント (C#) ├── contract # 通信定義ファイル置き場 (TypeScript) ├── server │ ├── api # Ra
はじめに #おうちハッカソンというものに同期と参加して、gRPCを使ったリアルタイム通信ゲームを作りました。 これは、ゲームクライアントを作った人間の視点での話になります。私はサーバサイドを担当していないので、サーバサイドをやってくれた人が記事を投稿してくれることを期待しています。 自己紹介 Twitter @AblerBiri Github Gamu2059 サイバーエージェント21年度入社予定 Unity、ゲームクライアント系がメインフィールドのエンジニア プログラミング歴だけだと7年くらい おうちハッカソン https://connpass.com/event/174573/ @at_sushi_atさんが主催されたハッカソンです。 内定者同士でリモート飲み会をした時に、「なかなか交流できないからハッカソンとかやって交流したいね」という意見が出ていました。 ちょうどその時にこのハッカ
こんにちは、クラスター株式会社でソフトウェアエンジニアをしているMito Memelです。 clusterでは、3D空間内でアバターモーションや音声を同期するためのリアルタイム通信サーバーをAmazon EC2上で動作させています。昨年から今年にかけて、このリアルタイム通信サーバーのリソース割り当て方法を改善し、結果として稼働しているEC2インスタンス台数を半分程度に削減することに成功しました。本記事では、clusterのリアルタイム通信サーバーが抱えていたリソース割り当て効率の課題とその改善手法をご紹介します。 背景 改善手法 まとめ 背景 アバターモーションや音声の同期のようなリアルタイム性の高い双方向通信を行う、いわゆるリアルタイム通信サーバーをスケールアウトする方法には、よくあるやり方としては2種類あります。 1つ目は、Webサーバなどと同じようにアプリケーションサーバをステートレ
Javaでリアルタイム通信(RTP)を行う際のメモ Sound APIとRTPを用いた音声通話アプリケーション 開発環境 Java Sound API マイク入力 Java Sound API スピーカー出力 G.711 u-law CODEC GSM CODEC(調査中...) RTPヘッダー RTPパケット送信機クラスを作る RTPパケット受信機クラスを作る RTPパケット送信機クラス・受信機クラスを使った音声通話サンプルプログラム 参考資料 開発環境 OS : Windows 2000/XP JAVA : Java J2SE v 5.0 Beta 2 Java Sound API マイク入力 Java Sound API はver 1.3以降のJavaに標準で実装されています javax.sound.sampled パッケージのクラスを使用してマイク入力をします。 AudioInpu
2013年のスマートフォンアプリ市場は、急拡大を遂げた1年であった。『パズル&ドラゴンズ(パズドラ)』が社会現象といえるほどの大ヒットとなり、ガンホー・オンライン・エンターテイメント<3765>の業績・株価ともに飛躍的に拡大。さらにコロプラ<3668>も『クイズRPG 魔法使いと黒猫のウィズ(黒猫のウィズ)』や『プロ野球PRIDE』をヒットさせ、売上高230%増、営業利益283%増と大きく伸びた。 株式市場での両社の評価は、同セクターでも飛び抜けて高く、株価上昇率は年初比で760%を記録している(関連記事)。今回、コロプラの馬場功淳社長にインタビューを行い、2013年のスマートフォンアプリ市場の総括と2014年の注目点、そして、コロプラとしての取り組みについて話を聞いてみた。 ■2013年はコロプラにとっては飛躍の年 ―――: 2013年を振り返っての感想を教えて下さい。 コロプラにとって
スマートフォン向けアプリ開発やサーバサイドの開発に関する技術ブログです。 エンジニアdommyのつぶやきは@shonanshachu、ソースコードはGitHubで配信中。 Android Advent Calendar 2012に参加したdommyです。 2012年もあと2日、今年も山あり谷ありの1年でした。 12月30日はすでにAdvent Calendarに載るべき日付でも無いですが、 Androidに関する記事ならなんでも良いとの事だったので、 リアルタイム通信関連の記事を書いてみたいと思います。 前提として、Androidでの通信といえばHTTPになります。 これはクライアントからのリクエストに対して、サーバがレスポンスを返すという形で、 サーバからリクエストする事は出来ないので、 リアルタイム通信とは違います。 socket通信AndroidはNDKを使えばC言語でも実装可能なの
こんにちは、ティアフォーでフロントエンド開発を担当している田上です。 ティアフォーでは先日ご紹介したSREの信頼性への取り組みの一つとして、少人数でも信頼性が高く、効率的な開発ができるように技術選定会を実施しています。 今回は、最近技術選定会で取り上げた「Point cloud data(PCD)のように大きなサイズのデータを含んだROS TopicをAWS CloudからWebブラウザに転送する」仕組みと技術選定会の様子についてお話したいと思います。 なお、今回ご紹介するようにティアフォーには新しい技術や技術的なチャレンジを良しとする雰囲気、エンジニアの興味や好奇心を満たせる環境があります。ぜひ以下のページから募集職種のリストを見ていただき、興味を持った方は応募をしていただければと思います。 herp.careers 背景 Autowareを使った自動運転車両は車両に搭載したLiDARを
株式会社Colorful Palette:GKE で構築されたリアルタイム通信エンジン『Diarkis』の導入で約 10 万ユーザーがバーチャル ライブに同時接続し体験を共有 2020 年 9 月にリリースされ、わずか半年で早くも 300 万ダウンロードを突破したスマートフォン向けリズム&アドベンチャー ゲーム『プロジェクトセカイ カラフルステージ! feat. 初音ミク』。そのサービスを支えるリアルタイム通信エンジン『Diarkis』は Google Kubernetes Engine(GKE) 上で動作しています。年末年始のカウントダウン イベントでは 10 万ユーザーに迫る同時接続があったという本サービスが、どのようにしてその難局を乗り切ったのか、開発に携わるエンジニアの皆さんにお伺いしました。 (利用している Google Cloud ソリューション) アプリケーションのモダナイゼ
ちょっとした前置き 先日、@neuecc氏が開発したMagicOnionのver2が正式リリースされました。 MagicOnion2リリースしました!Unityで使えるOSSのリアルタイム通信フレームワークとして、是非試していただければと思います! https://t.co/yIiJlvtC9t — neuecc (@neuecc) 2018年12月14日 MagicOnionとはHttp/2を使用したgoogle製rpcフレームワーク「grpc」をC#で使いやすくラップし、さらにUnityでの動作もサポートしているリアルタイム通信が可能なフレームワークです。 この記事では 「MagicOnionを使えばUnityでこんな簡単にリアルタイム通信が行えるんだ!(^o^)」 という事を伝えていきたいと思います。 ※色々便利な補助ツールが付いててその紹介もしたいんですが、この記事では「簡単、手軽
リアルタイム通信で活用!注目の技術「Node.js」とは【初心者向け】 初心者向けにNode.jsについて解説しています。Node.jsとはどんな技術で何ができるのか気になる人も多いでしょう。JavaScript環境でサーバーサイドも開発できるNode.jsのメリット・デメリットも知っておくと良いでしょう。 テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査 今回は、Node.jsについて解説します。 Node.jsとは一体何ができて、使う上で
DeNAではUnityを使って多くのゲームを開発していますが、Unityはいま、かつてない規模の大きな変革の時を迎えています。この大きなうねりのなかで、何が変わろうとしているかを知り、そして変化によって生まれる価値を正しく認識して開発に取り入れることができれば、Unityでのゲーム開発の効率を大きく改善させていくことができます。本セッションでは、Unityに今どのような改善がなされているのかについて話した上で、DeNAがその領域に対して今までどのように対処してきて、Unityの改善を受けてそれをどのように生かしてゲーム開発の現場に取り入れようとしているのかについてピックアップして説明していきます。
HTML5とJavaScriptによるモバイル端末アプリの開発はどうなるだろう? それら構築のための情報が息つく暇もなくネット上で更新されていく。何が主流となっていくのかといった質問も意味を成さないとしても、クロスプラットフォームの jQuey Mobile が注目され始めたり、モバイル・クラウドなるバズワードも最近(僕の頭の中で)芽生えた。 手法(=技術)だけではなくどんな姿勢で向き合うのかは重要だが、手法が姿勢を既定するということもありうる。ウェブは死んだという視点も興味深い話だ。けれどもウェブ回帰への勢いも止まらない。もちろん10年先はどうなっているのかは分からないが「ブラウザ」によるコミュニケーションの流れがさらに加速する。そのような姿勢がHTML5によって拡散され確立されていく様子は、どうやら歴史的な事実となっていきそうな気配だ。 iOSのSafariから傾きを取得し、それを別の
今回は、Android 4.0から追加された新機能「Wi-Fi Direct」を紹介します。デバイス同士を連携させて、◯×(マルバツ)ゲームで対戦するアプリを作成しましょう。 4.0から追加されたWi-Fi Directは、2010年にWi-Fiアライアンスが策定したもので、デバイス同士で直接通信を行うための仕様です。今回は、このWi-Fi Directを使って、デバイス同士で対戦できる○×ゲームを作成します(図1)。 Wi-Fi Directとは Wi-Fiといえば、無線LANのAP(アクセスポイント)と機器を接続する仕様ですが、Wi-Fi Directでは、APを介さずに機器同士で通信を実現できる点が特徴です。APを介さない類似の例には、PSP(PlayStation Portable)やニンテンドーDSなどのゲーム機で使われるAd Hoc(アドホック)通信がありますが、こちらはAd
MilkcocoaでBaaSを体験!~バックエンドの仕組みと使い方~ 第6回iOS(Swift)でも簡単リアルタイム通信! Milkcocoa iOS SDKを使ってみよう! はじめに 前回まででMilkococoaをサーバ側で利用するためのMilkcocoa Node.js SDKの概要や、SDKを使ったアプリケーション実装方法などを紹介してきました。 今回はiPhoneやiPad上で動作するiOSとの連携が出来るMilkococoa iOS SDKを紹介したいと思います。前回、IoTという単語が出てきていましたが、IoT領域ではスマートフォン連携も需要が高くなっていますので覚えておいて損は無いと思います。 Milkcocoa iOS SDK これまでに紹介したMilkcocoaのSDKは全てJavaScript向けのSDKでした。今回は、冒頭に述べたようにiPhoneとの連携を図るため
こんばんは。古くて重いMacBook Proを背負って腰が崩壊した@daybysay です。 腰に課題を感じるエンジニアの皆様におかれましてはぜひ軽めのMacBookを背負ってご活動をお勧めいたします。 さて、今回はは複数人で同期しながら遊べるタイプのVRコンテンツ開発を試してみました。 内容としては、A-FrameとWebSocketを使ったリアルタイムマルバツゲームの実装です! 出来上がりはこんな感じです。 リポジトリはこちら github.com そして今回出来上がったマルバツゲームへのリンクがこちらです。 目次 目次 アプリの構想 環境構築 アプリケーション実装 クライアントサイドの実装 マス目を置く プレイヤー(カメラ)を用意 クリックできるようにする プレイヤー名表示 サーバサイドの実装 Socket.IOを使う準備をする 別々のプレイヤーとして接続できるようにする マス目のク
CTOの椎名アマドです。 昨日弊社Pairyは1億円調達の発表を行ないました! 色々な方から嬉しいメッセージなどが届いて嬉しい限りです。 ちなみにエンジニア採用を本格的に行なってるので、興味ある人は http://timers-inc.com を見てみてください! さて、今回はリアルタイム通信に関してです。 前々から我々は Pairy にwebsocket使ったリアルタイム通信を導入したいねと言っていて、最近やっと導入に成功しました。 Ratchet と ZeroMQ という2つのライブラリの組み合わせによって、比較的簡単に実装できてます。 設計の概要 設計はざっくりと: 1. ネイティブアプリAが投稿などのアクションを行ない、webサーバーにリクエスト送信 2. webサーバーがDBサーバーに書き込み 3. webサーバーがsocketサーバーにメッセージをZeroMQ経由で送信 4.
僕は別にアプリエンジニアじゃなかったんだけど、やらないといけなくなり、検証したのでメモ。 (Node.jsはv0.10.28、Socket.IOは0.9.17、Unityは4.3.4、iOSは7.1.2、Androidは4.4.2で検証) スマホでSocket.IOを使いたい場合、ネイティブではこの辺のライブラリを使うと思う。 https://github.com/pkyeck/socket.IO-objc https://github.com/Gottox/socket.io-java-client ネイティブプラグインはよくわからなかったのでC#で書いてiOS,Android両方で使えるのはないかなと思っていたら https://github.com/NetEase/UnitySocketIO これが見つかった。他にはあまりなさそう。 で、一個問題があって、iOSだとEXC_BAD_A
NECは2013年1月17日、リアルタイム処理による毎秒1テラビット(テラは1兆)の大容量信号で5400キロメートルの長距離通信に成功したことを発表した。100ギガビットのサブキャリア信号を高密度で重ね合わせることで1テラビット分の「スーパーチャネル信号」を生成し、光ケーブルを通して5400キロメートルの距離を伝送。重ね合わせた信号をリアルタイム処理し、エラーなく通信完了できることを実証した。 このクラスの大容量・長距離通信の実験成功は世界初だという。大容量動画配信やクラウドコンピューティングの普及などで、海底ケーブルを使った国際通信ネットワークの需要は急増している。NECはこの分野で世界トップクラスのシェアを握る(写真)。新技術が実用に向けて大きく前進したことを受けて、通信事業者などへの営業活動を強化。今後新たに敷設される海底光ケーブルによる通信ネットワークへの採用を目指す。 NECの実
リアルタイム将棋「ぬこしょうぎ」をリリース 先日こんなアプリをリリースさせて頂きました。 ぬこしょうぎ - ヤルキマントッキーズ株式会社 将棋をモチーフにコマの動きは将棋そのままで、将棋からターン制をバッサリと取り除いたゲームです。 ルールはシンプルなので将棋を知らない方でも楽しめる仕様になっています。 (不思議なことにターン制を取り除いてもやっぱり将棋を知っている人が若干有利になるようです!) 通信をどのような構成で、何を使ってやっているか ◆サーバサイド(コネクションサーバ) クライアントからの WebSocket 接続を受け付けるサーバ。 知人が作成した nginx-luajit-websocket-pubsuber を利用して WebSocket 接続を受け付けている。 github.com 簡単に説明すると、nginx で接続を受け付けて WebSocket コネクションを維持し
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く