Web標準のHTTPクライアントfetch()でストリーミングしながらアップロードできるようになる。
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これは CAMPFIRE Advent Calendar 2024 の 13日目の記事です。 他の方がCAMPFIREに関連したことを書く中、去年に引き続き、あまりCAMPFIREとは関係なく記事を書きます(去年は量子コンピューティングでした)。去年よりはWeb技術なのでCAMPFIRE寄りの内容です。 さて、みなさんはWebのリアルタイム通信、双方向通信といえば、何を思い浮かべるでしょうか? おそらく、WebSocketが一番多いのではないでしょうか。ちなみに私もそうです。 それ以外にもW3Cで標準化済みやドラフトの技術として、Ser
これはなんらかのアドベントカレンダーの何日目かの記事だったりしません。 KOBA789 です。仕事では人工衛星の搭載ソフトウェアを書いたり、人工衛星の管制システムのソフトウェアを書いたりしています。 先日、こういうツイ……ポストをしたらちょっとバズりました。意外と興味持ってくれる人が多かったので、それに関連するオタク早口記事でも書くかぁと思って筆を執っています。 うちの人工衛星の開発ツールはウェブ技術でできている 前述のポストは管制システムについてですが、開発用ツール(C2A DevTools)もまた React + TypeScript でできています。 まぁ画面見てもなにがなんだかという感じだと思いますが、UNIX サーバーで top コマンド叩いたときの内容と、サーバーのログが合体したみたいなものが表示されていると思ってください。 これらの数値は gRPC-web の Server-
はじめに #おうちハッカソンというものに同期と参加して、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サーバなどと同じようにアプリケーションサーバをステートレ
こんにちは、ティアフォーでフロントエンド開発を担当している田上です。 ティアフォーでは先日ご紹介した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 ソリューション) アプリケーションのモダナイゼ
Unityで利用できるリアルタイム通信ゲーム開発基盤がGitHubで公開。Photon Fusionベース、無償ライセンスでおためし可能 by せきやdn · 2023年7月3日 Unityに関するTips・コンテンツを公開しているシンプルスター氏(@lpcwstr)が、Unityで利用できるシンプルなオンライン開発基盤を公開しました。 サクッと試せるリアルタイム通信ゲームの開発基盤 シンプルスター氏は、ゲームプロジェクト『CubeArtWorld』を開発しています。サンドボックスタイプのゲームで、全プレイヤーでたった一つのワールドを共有していることが特徴の作品です。 このタイトルは通信システムに「Photon Cloud(PUN2)」を使用していますが、同氏はその後継製品である「Photon Fusion」のノウハウ公開を積極的に行っています。 この度公開されたリアルタイム通信ゲームの開
Happy Elements Advent Calendar 2020 24日目の記事です。 概要 あんさんぶるスターズ!!Musicのエンジニアリーダーをしています。 複数人で音楽ゲームを行う「みんなでライブ」で使われたリアルタイム通信基盤について書きたいと思います。 今回は技術選定の段階で検討した内容について紹介し、Redis Streamsを用いたスケーラブルな基盤を提案します。 みんなでライブについて みんなでライブは、あんスタ!!Musicにおいて複数人で音楽ゲームを行うシステムです。 画面遷移の同期やスタンプ送信、コンボ数の共有などがリアルタイム通信を用いて行われています。 リアルタイム通信の技術選定について 弊社ではポーリングを用いた複数人参加のバトルや、Photonを用いた協力プレイなど実績があります。 あんスタ!!Musicのみんなでライブでは同時接続1万人以上を想定して
この記事は Rust Advent Calendar 2022 その2 の19日目の記事です。 はじめに リアルタイムな通信を行うサーバは、ゲームのマルチプレイやチャット、ビデオ通話など様々な場面で必要になります。 このようなサーバは、よくあるREST APIを提供するHTTPサーバとは異なり、必ずしもリクエスト/レスポンスベースの通信であるとは限らず、双方向的な通信を行います。 さらに1クライアントあたり、秒間数〜数十以上のメッセージを送受信します。 リアルタイムな通信を実現できる通信プロトコルは多数あり、WebSocket、gRPCの双方向ストリームやQUICなど、あるいは生のTCPストリーム上に独自のプロトコルを構築したり、UDPを利用することもあります。 どの通信プロトコルを利用するかは、それぞれのメリット・デメリット、実行環境の制約によって利用できるかどうかなどの違いを吟味した上
また、インフラ面でも課題があり、 既存のAPIサーバーは、オンプレミス での運用に対して、 現在開発中のリアルタイム通信サーバーは、クラウド (AWS) での運用が前提になっています。 そのため、運用中のユーザーデータなどへのアクセスに制限があり、 リアルタイム通信サーバー (クラウド) と APIサーバー (オンプレミス) で通信することも可能ですが、 APIサーバーの負荷等も考慮すると、頻繁なアクセスはできないため、 基本的に運用中のユーザーデータへのアクセスはできない前提とします。 技術的にいろいろハイブリッドな構成となっていますし、 いろいろな事情も絡んで、リアルタイム通信サーバー で実現できることも限られていますが、 そのあたりも含めて、全体像をご紹介したいと思います。 使用している技術 (2020年12月時点) サーバーサイド .NET 5.0 (C# 9.0) MagicOn
Happy Elements Advent Calendar 2020 8日目の記事です。 7日目の記事に引き続き、「メルクストーリア」エンジニアの 岸本 です。 前回の記事では、MagicOnion の基本的な部分や、 サーバー構成 の考え方について、ご紹介させていただきました。 今回は、Kubernetes や Agones といったインフラ寄りの話題に加えて、 具体的な処理の流れなどをご紹介したいと思います。 本内容ですが、現在開発中のものであり、実際の仕様とは異なる場合があります! Kubernetes / Agones さて、 ここまでの内容を実現するために、今度はインフラ面でどうするか問題になってきます。 今回は、Kubernetes や Agones を用いることで解決します。 (Kubernetes や Agones の細かい説明は割愛します!) Kubernetes Ku
これは「コードを書いていて困ったときに、suinがチャットで質問に答えたり相談に乗るsuinのプログラミング相談室(仮)」で頂いた質問と僕の回答の要約です。 質問 フロントエンドとバックエンドのリアルタイム通信の選択肢を教えて下さい。その長所短所も知りたいです。 僕の回答 こんにちは。 フロントエンドとバックエンドのリアルタイム通信の選択肢についての質問ですね。 通信方法の選択肢についてご回答します。 1. AJAXポーリング この方式は、GETリクエストなどをAJAXで数秒間隔などでバックエンドに投げ、もしレスポンスのデータに変化があったら、それをフロントエンドに反映するという手法です。 ポーリングの長所は、AJAXが分かれば他に学ぶことがないという点です。実装もかんたんです。また、バックエンドのサーバやプログラミング言語の選択肢も広いです。 短所は、無駄な通信が発生しうるということです
はじめに 本連載では、マルチプラットフォーム化が進む.NETと、そのWebアプリケーション開発フレームワークであるASP.NET Coreの全体像を俯瞰します。ASP.NET Coreは、アプリケーションの目的や開発スタイルに応じて選択することができる多彩なサブフレームワークを搭載しています。それらの基本的な性質や機能を読者に示すことで、ASP.NET Core導入の一助になることを目的とします。 対象読者 Core以前のASP.NETに慣れ親しんだ方 Web開発の新しい選択肢としてASP.NET Coreを理解したい方 ASP.NET Coreの多彩なフレームワークを俯瞰したい方 必要な環境 本記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Ventura / Windows 10(64bit) .NET SDK 7.0.100 SignalRとは SignalR
はじめに VRM使ったリアルタイム通信でなんか面白いこと出来ないか考えているyoship1639です。 リアルタイム通信は以前は低レイヤのAPIを使いやすいように自分でラップしたり、フラグメント化回避のために四苦八苦したり、サーバ~クライアント間の統一したインターフェースをどうやって実装するか悩んだり、シリアライズどうするか絶望したりしていましたが、最近はgRPCがでたり、それを.Netで使いやすいようにラップしたMagicOnionが登場したりで上記の悩みを全部吹き飛ばしてくれる規格やフレームワークが出てきていい時代になったな~と実感しています。 リアルタイム通信は上記の悩みが最初のボトルネックなので、クリアしたら今度はそれを如何に活用できるかが重要になります。例えばチャットアプリは何も考えずにクライアント->サーバ->全クライアントという様にメッセージを流せばいいですが、これが3Dリア
これは「コードを書いていて困ったときに、suinがチャットで質問に答えたり相談に乗るsuinのプログラミング相談室(仮)」で頂いた質問と僕の回答の要約です。 質問 フロントエンドとバックエンドのリアルタイム通信の選択肢を教えて下さい。その長所短所も知りたいです。 僕の回答 こんにちは。 フロントエンドとバックエンドのリアルタイム通信の選択肢についての質問ですね。 通信方法の選択肢についてご回答します。 1. AJAXポーリング この方式は、GETリクエストなどをAJAXで数秒間隔などでバックエンドに投げ、もしレスポンスのデータに変化があったら、それをフロントエンドに反映するという手法です。 ポーリングの長所は、AJAXが分かれば他に学ぶことがないという点です。実装もかんたんです。また、バックエンドのサーバやプログラミング言語の選択肢も広いです。 短所は、無駄な通信が発生しうるということです
この記事は、リアルタイムな通信に利用可能な PubNub を試してみた話の記事です。 また、ちょうど今日の枠が空いている JavaScript のアドベントカレンダーがあったので、急遽、そちらへの登録も行ってみました。 無料プランもあるサービスで、記事執筆時点(2020年12月19日現在)では、以下の範囲は無料で利用できるようです。 This plan is free up to 1 million transactions or 200 monthly active users. また、 公式のドキュメントの SDK に関するページ を見ると、以下の複数の言語・環境で利用できるようです。 上記の画像の下には、「Client SDKs」・「IoT SDKs」・「Server SDKs」といった項目ごとに対応言語等が書かれていました。個人的に気になったのはこのあたりです。 JavaScrip
リアルタイム通信とは そもそも「リアルタイム」の意味は界隈によって様々ありますが、本記事ではWEBアプリケーションにおいて「サーバ側の更新によりクライアント側も更新される」という意味合いで進めていきます。つまり、リロードしなくても自動でページが変化するようなアプリケーションを手助けしてくれる通信を「リアルタイム通信」とします。例えば、LINEやSlackのようなライブチャットや、Google Documetなどのコラボレーションツールが挙げられれます。 リアルタイム通信技術 WEBアプリケーションはHTTP通信によって成り立っています。HTTPの大きな特徴は以下の3つです。 クライアント/サーバモデル リクエスト/レスポンス ステートレスプロトコル それぞれの説明は省きますが、HTTPにおいて、サーバがクライアントからの各リクエストを独立して扱うため、基本的に連続したリクエスト間での状態を
リアルタイム通信について 以前リアルタイム通信についてまとめた記事を執筆しました。この背景として、他ユーザの予約がリアルタイムに反映される予約管理アプリの開発があり、予約のトランザクションエラーを防ぐための一貫性を第一としたリアルタイム通信が必要でした。 しかし、PollingやLong Pollingによる通信はリクエスト間隔や更新間隔に依存するため、その間に他ユーザの予約が挟まるとトランザクションエラーを引き起こします。何より毎秒何件も予約が発生するようなアプリケーションではないことから、無駄なHTTP通信が発生するため負荷の面の課題が大きいです。 一方、SSEはchunkを用いるためコネクションは最低限で済みます。しかし、コネクションが一時的に切断された場合、その間のデータ更新を追う機能はプロトコルレベルではないため、SSEの再接続に対応するための実装コストが増えます。また、同様にH
はじめまして!ambrサーバーサイドチームです! メタバースのサーバーサイドの紹介記事って少ないですよね。本記事では先日のメタバースイベントから導入しているリアルタイム通信の新しいアーキテクチャについて紹介しております。ウェブサービス業界にいるけどメタバース業界に興味がある方、アーキテクチャの違いについて興味がある方など、ぜひ参考にしていただけたらと思います。 リアルタイム通信サーバーとは まず始めにリアルタイム通信って何?という方もいらっしゃると思います。メタバースではプレイヤー同士の移動や手の動きといったデータをリアルタイムに同期していく必要があり、それを行うのがリアルタイム通信サーバーです。いわゆるゲームサーバーと呼ばれたり、Photonと呼ばれるエンジンおよびSaaSなどが有名ですね。 多くのユーザーからのアクセスにも耐えながらも高速な通信を実現していく必要があり、アプリケーション
はじめに この記事は簡単なCRUDアプリをSPA(Single Page Application)っぽくしたり、ブロードキャストを使ってリアルタイム通信したりと、ちょっとRails7に触ってみての感想になります。 Railsの5系・6系を使ったことはあるけれど、7系はまだ触れていない人向けに、この記事を読んでRails7系に興味をもってもらえると嬉しいです。 ■ 開発環境 ・Ruby:3.1.2 ・Rails:7.0.4 イメージの共有 今回試したことをパッと見で分かりやすく伝わるようにと動画を用意しました。試してみた中で今日は以下の2つについて書いていきます。 画像つき投稿をSPAっぽく投稿する ブロードキャストを使ってリアルタイム通信する 【 画像つき投稿をSPAっぽく投稿する動画 】 【 ブロードキャストを使ってリアルタイム通信する動画 】 画像つき投稿をSPAっぽく投稿する これを
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く