Submit Search
Upload
MagicOnion入門
•
7 likes
•
10,616 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
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
Recommended
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
コールバックと戦う話
コールバックと戦う話
torisoup
猫でも分かるUMG
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
Epic Online Services でできること
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
UniTask入門
UniTask入門
torisoup
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
UniRx完全に理解した
UniRx完全に理解した
torisoup
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
NishoMatsusita
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
Kentaro Ebisawa
More Related Content
What's hot
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
YutoNishine
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
エピック・ゲームズ・ジャパン Epic Games Japan
コールバックと戦う話
コールバックと戦う話
torisoup
猫でも分かるUMG
猫でも分かるUMG
エピック・ゲームズ・ジャパン Epic Games Japan
Epic Online Services でできること
Epic Online Services でできること
エピック・ゲームズ・ジャパン Epic Games Japan
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
UniTask入門
UniTask入門
torisoup
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
UniRx完全に理解した
UniRx完全に理解した
torisoup
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
What's hot
(20)
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Riderはいいぞ!
Riderはいいぞ!
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
コールバックと戦う話
コールバックと戦う話
猫でも分かるUMG
猫でも分かるUMG
Epic Online Services でできること
Epic Online Services でできること
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
UniTask入門
UniTask入門
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
UniRx完全に理解した
UniRx完全に理解した
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
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
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
torisoup
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
torisoup
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
Observableで非同期処理
Observableで非同期処理
torisoup
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
torisoup
Photon Cloud ことはじめ
Photon Cloud ことはじめ
torisoup
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
torisoup
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
torisoup
Task vs Observable
Task vs Observable
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
(17)
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
Unityで作ったゲームをDLカードで配布してみた話 #roppongiunity
ARでVRアバターを表示するシステムを構築しよう
ARでVRアバターを表示するシステムを構築しよう
インタフェース完全に理解した
インタフェース完全に理解した
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
Observableで非同期処理
Observableで非同期処理
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
Photon Cloud ことはじめ
Photon Cloud ことはじめ
アバター生放送支援アプリ「アバれぽ」
アバター生放送支援アプリ「アバれぽ」
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
Task vs Observable
Task vs Observable
UniRxでPUNを使いやすくする
UniRxでPUNを使いやすくする
はじめてのUniRx
はじめてのUniRx
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
未来のプログラミング技術をUnityで -UniRx-
未来のプログラミング技術をUnityで -UniRx-
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
Unity講習会(初級)
Unity講習会(初級)
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