Submit Search
Upload
MagicOnion入門
•
7 likes
•
10,623 views
torisoup
Follow
[非公式] Unite Tokyo 2019 Eve2 LT Fes https://connpass.com/event/139403/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Recommended
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
例外設計における大罪
例外設計における大罪
Takuto Wada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
私にとってのテスト
私にとってのテスト
Takuto Wada
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
DeNA
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
UniRx完全に理解した
UniRx完全に理解した
torisoup
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
NishoMatsusita
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
Kentaro Ebisawa
More Related Content
What's hot
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
例外設計における大罪
例外設計における大罪
Takuto Wada
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
私にとってのテスト
私にとってのテスト
Takuto Wada
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
DeNA
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
UniRx完全に理解した
UniRx完全に理解した
torisoup
What's hot
(20)
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
例外設計における大罪
例外設計における大罪
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
私にとってのテスト
私にとってのテスト
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
Docker Compose 徹底解説
Docker Compose 徹底解説
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
UniRx完全に理解した
UniRx完全に理解した
Similar to MagicOnion入門
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
NishoMatsusita
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
Kentaro Ebisawa
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM,INC
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM,INC
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
SORACOM Discovery2019 H1新規事業立上げを支援するソラコムチームの活動とユーザー事例
SORACOM Discovery2019 H1新規事業立上げを支援するソラコムチームの活動とユーザー事例
SORACOM,INC
6th Japan IT week autumn
6th Japan IT week autumn
Hidenori Matsuki
Mobile Web
Mobile Web
Makoto Kato
オープンクラウドカンファレンス2017 | クラウドネイティブなIoT通信プラットフォームと その活用事例
オープンクラウドカンファレンス2017 | クラウドネイティブなIoT通信プラットフォームと その活用事例
SORACOM,INC
はじめてのWeb of Things
はじめてのWeb of Things
Saki Homma
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
we are javascript LTの資料4
we are javascript LTの資料4
Yuuta Moriyama
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
SORACOM,INC
【Connected.T5】SORACOMと繋がるクラウドサービス
【Connected.T5】SORACOMと繋がるクラウドサービス
SORACOM,INC
SORACOM Meetup 広島 | SORACOM 紹介
SORACOM Meetup 広島 | SORACOM 紹介
SORACOM,INC
Observability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
Taiki
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Y Watanabe
Javaで学ぶネットワークプログラミングの基礎
Javaで学ぶネットワークプログラミングの基礎
なべ
Angularreflex20141210
Angularreflex20141210
Shinichiro Takezaki
Similar to MagicOnion入門
(20)
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM Technology Camp 2018 | A3. IoT×クラウドデザインパターン
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
SORACOM Technology Camp 2018 ベーシックトラック3 | 今日から始めるセンサーデータの可視化
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
SORACOM Discovery2019 H1新規事業立上げを支援するソラコムチームの活動とユーザー事例
SORACOM Discovery2019 H1新規事業立上げを支援するソラコムチームの活動とユーザー事例
6th Japan IT week autumn
6th Japan IT week autumn
Mobile Web
Mobile Web
オープンクラウドカンファレンス2017 | クラウドネイティブなIoT通信プラットフォームと その活用事例
オープンクラウドカンファレンス2017 | クラウドネイティブなIoT通信プラットフォームと その活用事例
はじめてのWeb of Things
はじめてのWeb of Things
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
we are javascript LTの資料4
we are javascript LTの資料4
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
【Connected.T5】SORACOMと繋がるクラウドサービス
【Connected.T5】SORACOMと繋がるクラウドサービス
SORACOM Meetup 広島 | SORACOM 紹介
SORACOM Meetup 広島 | SORACOM 紹介
Observability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Javaで学ぶネットワークプログラミングの基礎
Javaで学ぶネットワークプログラミングの基礎
Angularreflex20141210
Angularreflex20141210
More from torisoup
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
UniTask入門
UniTask入門
torisoup
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
torisoup
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
Observableで非同期処理
Observableで非同期処理
torisoup
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
torisoup
Photon Cloud ことはじめ
Photon Cloud ことはじめ
torisoup
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
torisoup
コールバックと戦う話
コールバックと戦う話
torisoup
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
torisoup
Task vs Observable
Task vs Observable
torisoup
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
torisoup
はじめてのUniRx
はじめてのUniRx
torisoup
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
torisoup
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
torisoup
Unity講習会(初級)
Unity講習会(初級)
torisoup
More from torisoup
(19)
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
UniTask入門
UniTask入門
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
インタフェース完全に理解した
インタフェース完全に理解した
Observableで非同期処理
Observableで非同期処理
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
Photon Cloud ことはじめ
Photon Cloud ことはじめ
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
コールバックと戦う話
コールバックと戦う話
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
Task vs Observable
Task vs Observable
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
はじめてのUniRx
はじめてのUniRx
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
Unity講習会(初級)
Unity講習会(初級)
Recently uploaded
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(10)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
MagicOnion入門
1.
MagicOnion⼊⾨ 2019/9/23 とりすーぷ
2.
⾃⼰紹介 • 「とりすーぷ」 • @toRisouP •
バーチャルキャスト社 開発 • Microsoft MVP for Developer Technologies 2018〜 VRのアバター
3.
今回の話 • MagicOnionについての概要を説明 • 何のためのフレームワークか •
どんな機能があるのか
4.
MagicOnionって何?
5.
MagicOnion is 何 •
リアルタイムネットワーク通信のフレームワーク • Photon Serverなどと同列に並ぶもの
6.
⼀般的なサーバ-クライアントの実装 クライアント サーバ
7.
⼀般的なサーバ-クライアントの実装 ここで通信していろいろやりたい サーバにロジックやデータがある
8.
⼀般的なサーバ-クライアントの実装 ここの通信プロトコルは? HTTP? WebSocket? gRPC
?
9.
⼀般的なサーバ-クライアントの実装 ここの通信プロトコルは? HTTP? WebSocket? gRPC
? データフォーマットは? Json? Xml?Byte[]?
10.
⼀般的なサーバ-クライアントの実装 ここの通信プロトコルは? HTTP? WebSocket? gRPC
? データフォーマットは? Json? Xml?Byte[]? エンドポイントやAPIスキーマを どうきめてどう管理するの?
11.
⼀般的なサーバ-クライアントの実装 ここの通信プロトコルは? HTTP? WebSocket? gRPC
? データフォーマットは? Json? Xml?Byte[]? リアルタイム通信するの? 単発のAPIサーバでいいの? エンドポイントやAPIスキーマを どうきめてどう管理するの?
12.
⼀般的なサーバ-クライアントの実装 ここの通信プロトコルは? HTTP? WebSocket? gRPC
? データフォーマットは? Json? Xml?Byte[]? リアルタイム通信するの? 単発のAPIサーバでいいの? エンドポイントやAPIスキーマを どうきめてどう管理するの? この辺あたりの実装をまとめたものが MagicOnion
13.
MagicOnionって何? • .NET Core/Unity⽤のリアルタイム通信フレームワーク •
サーバサイドC#、クライアントとコード共有可能 • gRPC + MessagePack • MITライセンス • 開発はCySharp社 • メインコミッターはneuecc⽒(UniRxの作者)
14.
要するに? • サーバサイドのC#ロジックを クライアントから簡単に実⾏できるフレームワーク • サーバ側は
.NET Core • クライアント側は Unity / .NET Core
15.
MagicOnion 通信プロトコルは「gRPC」 データフォーマットは 「MessagePack」 リアルタイム通信・単発のAPIサーバ 両対応 C#のソースコードがそのまま エンドポイントやスキーマになる
16.
最⼤の特徴 • 通信レイヤを意識せずにサーバコードを呼び出せる • サーバとクライアントでC#インタフェースを共有 •
async/awaitでメソッド呼び出しするだけでOK • (ただしgRPCのコネクション管理だけは⾃前で管理が必要)
17.
例 • サーバで⾜し算する SumAsync(1 ,
2); 3 1 + 2
18.
例:サーバサイドで計算する 1.サーバ/クライアントで共有するインタフェースを⽤意 サーバ側/Unity側両⽅に同じファイルを配置する
19.
例:サーバサイドで計算する 2.サーバ側に実装をおく 与えられた値を⾜して返すだけ
20.
例:サーバサイドで計算する 3. Unity側で呼び出す gRPCのチャンネルを作って
21.
例:サーバサイドで計算する 3. Unity側で呼び出す ICalculateServiceへのクライアントを作り
22.
例:サーバサイドで計算する 3. Unity側で呼び出す あとは普通にメソッドコールするだけ 通信の結果はasync/awaitで待つだけでOK
23.
例:サーバサイドで計算する クライアント サーバ
24.
これだけ! • 共通のインタフェースを定義して中⾝を実装するだけ • 通信周りのことはすべてMagicOnionにおまかせ •
アプリケーションレイヤではただ単にメソッドコールするだけでOK • ただし、事前にコードジェネレート処理だけ必要
25.
必要なもの • クライアントサイド • Unity •
MagicOnion • MessagePack • gRPC
26.
必要なもの • サーバサイド • .NET
Core • MagicOnion • MessagePack • Generic Host (追加で⼊れるのをおすすめ)
27.
サーバマシンは当然いるよ • Docker +
Kubernetes が推奨 • Google Kubernetes Engineとかそのへんで動かすとよい • インフラコストはもちろん必要 • k8sの学習コスト • 動かすお⾦
28.
どんな機能があるのか
29.
実装できるAPIの種類 • Service • UnaryRPC
(1Request ‒ 1Response) • メソッドコールのたびにリクエストを投げる • StreamingHub • Duplex Streaming ( N Request ‒ M Response) • 常時接続 • サーバ/クライアントが任意のタイミングで互いにデータを送れる
30.
Service MagicOnion Server Client • 1回のリクエストで必ず1つのレスポンス
31.
StreamingHub MagicOnion Server • 好きなタイミングでリクエストしたり、 サーバからメッセージのブロードキャストが可能 「⾃分のステータス」を定期的に送って 結果を全員へ送る、とか サーバで計算して
32.
フィルタ機能 • 通信の前後に処理を追加できる • サーバ側 •
「Service」「StreamingHub」両対応 • メソッドを実⾏する前・後両⽅に処理を追加可能 • クライアント側 • 「Service」でのみ利⽤可能 • リクエストを送る直前、レスポンスを受け取った後に処理を追加可能
33.
フィルタの⽤途 • 例 • ログ出⼒ •
リトライ機構を作る(クライアント側) • 認証機構を追加する • 暗号/復号化する • 実際に通信せずにダミーレスポンスに差し替える(クライアント側) フィルタは多段に組み合わせて設定してもOK
34.
フィルタについて詳しく知りたい • ぱすたさんの資料がおすすめ • MagicOnionでの共通処理の挟み⽅ •
https://speakerdeck.com/p_a_sta/magiconiondefalsegong-tong- chu-li-falsexie-mifang
35.
まとめ
36.
まとめ • サーバとクライアントをC#で統⼀して作れる! • クライアントのC#エンジニアがそのままサーバコードをいじれる! •
C#として⾃然な形でサーバロジックが呼び出せて楽しい • 個⼈開発者はちょっと考えたほうがいいかも • MagicOnionを動かすサーバ代がどうしても必要(○万円〜/⽉) • インフラ周りのことを考えなくて済む「Photon Cloud」もアリ
37.
本当はもっと話したかった • 8分じゃ全然⾜りなかったよ… • もうちょっと踏み込んだ話は「.NET
Conf in Tokyo」で話します • Room Bは「Unity」トラック • https://vsuc.connpass.com/event/146588/
Download now