Submit Search
UWPアプリにおける正しいnetworking APIの使い方
2 likes
1,573 views
Akira Hatsune
https://channel9.msdn.com/events/Build/2016/P426 を勝手に日本語訳したものです。
Education
Read more
1 of 36
Download now
Downloaded 14 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
More Related Content
PDF
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
PPTX
AJAXのBASIC認証検証結果
Shintaro Mizunuma
PDF
マルチ テナント クラウド アプリケーションの設計手法
Kazuyuki Nomura
PDF
おはようたいむしふと
Akira Hatsune
PPTX
Windows Store App HTTP通信を振り返る
Tomonori Ohba
PDF
20130315 abc firefox_os
Tomoaki Konno
PDF
Html5, Web Applications 2
totty jp
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
AJAXのBASIC認証検証結果
Shintaro Mizunuma
マルチ テナント クラウド アプリケーションの設計手法
Kazuyuki Nomura
おはようたいむしふと
Akira Hatsune
Windows Store App HTTP通信を振り返る
Tomonori Ohba
20130315 abc firefox_os
Tomoaki Konno
Html5, Web Applications 2
totty jp
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
Similar to UWPアプリにおける正しいnetworking APIの使い方
(11)
PDF
Dist 29 gcp_serverless_web_app_development
Shotaro Suzuki
PDF
Microsoft Graph APIを活用した社内アプリケーション開発
Yuki Hattori
PDF
SignalRブートキャンプ
Kouji Matsui
PPTX
SL囲む会東京5 Nodejs×Silverlightではまったこと
normalian
PPTX
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
PPTX
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
Kensaku Komatsu
PPTX
Interoperability of webassembly with javascript
Takao Tetsuro
PDF
Ocif2016_go_web_freamwork
Shuichi Yukimoto
PDF
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
PDF
次期Office製品群の新しい開発モデルの解説
kumo2010
PPTX
Interactive connection2
Takao Tetsuro
Dist 29 gcp_serverless_web_app_development
Shotaro Suzuki
Microsoft Graph APIを活用した社内アプリケーション開発
Yuki Hattori
SignalRブートキャンプ
Kouji Matsui
SL囲む会東京5 Nodejs×Silverlightではまったこと
normalian
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
Kensaku Komatsu
Interoperability of webassembly with javascript
Takao Tetsuro
Ocif2016_go_web_freamwork
Shuichi Yukimoto
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
次期Office製品群の新しい開発モデルの解説
kumo2010
Interactive connection2
Takao Tetsuro
Ad
UWPアプリにおける正しいnetworking APIの使い方
2.
Using the Right
Networking API for Your UWP App
4.
サーバでの利用 シナリオ要件 バックグラウンド 実行 移植性性能考慮点 コード容易性
5.
ユーザ認証付HTTPS クラウドとの双方向通信 ソケット経由のデバイス間通信 コンテンツ送受信のバックグラウンド実行
8.
Windows.Web.Http System.Net.Http 対応プログラミング言語 すべてのUWP言語
C#/VB プライベートCA/オレオレ証明書 ○ ○ サーバー証明書の独自検証 ○ (新機能) × (将来予定) 認証画面が組み込まれているか ○ × クライアント証明書対応 ○ 一部対応 Xamarin対応 × ○
9.
var filter =
new HttpBaseProtocolFilter(); filter.ClientCertificate = myCertificate; var client = new HttpClient(filter); HttpResponseMessage response = await client.GetAsync(uri);
10.
Demo: Online Auction
App 要件: 1. サーバー証明書の独自検証 2. クライアント証明書 使用API: Windows.Web.Http.HttpClient
11.
http://aka.ms/httpclientblogpost
14.
HttpClient WebSockets メッセージパターン Request-response
Bidirectional 同時通信 半二重 全二重 レイテンシー/オーバーヘッド 高 低 プロキシー/ファイアウォール対応 ○ ○ サーバー証明書の独自検証 ○ (新機能!) ○ (新機能!) RESTful実装 クラスに組込済 コード実装必要 キャッシュとデータ圧縮の実装 クラスに組込済 コード実装必要
15.
MessageWebSocket StreamWebSocket メッセージフォーマット 不連続な WebSocketメッセージ 連続データストリーム UTF
8 / JSONデータ ○ × バイナリ―データ ○ ○ 推奨データサイズ 小 (bytes/KB) 大 (MB) 推奨データ形式 Strings, JSON形式 Audio, Video, Photos
16.
var socket= new
MessageWebSocket(); socket.MessageReceived = myReceivingHandler; socket.Closed = myClosedHandler; await socket.ConnectAsync(serverUri); // Send data. socket.Close(code, reason);
17.
Demo: Online Auction
App 要件: 1. 真の双方向通信 2. クライアントから入札を他のクライアントにサーバーで中継 3. レイテンシーやオーバーヘッドを最小に 使用API: Windows.Networking.Sockets.MessageWebSocket
18.
Wireshark trace for
WebSocket run Wireshark trace for HttpClient run Bytes on the wire
22.
Windows.Networking.Sockets System.Net.Sockets WinSock 使用言語
C++/CX ○ × ○ JavaScript ○ × × C#/VB ○ ○ × バックグラウンド 実行 ○ × ×
23.
SocketActivityTrigger
24.
socketTaskBuilder.TaskEntryPoint = "SocketActivityBackgroundTask.SocketActivity Task"; var trigger
= new SocketActivityTrigger(); socketTaskBuilder.SetTrigger(trigger); var task = socketTaskBuilder.Register(); socket.EnableTransferOwnership(task.TaskId, SocketActivityConnectedStandbyAction.Wake); await socket.ConnectAsync(target, port);
25.
備考: • ソケットの所有権をもつ唯一のコンポーネントであること • サービスが使用するソケット所有者のリストを表示: SocketActivityInformation.AllSockets •
ソケットがリストにないのは、すでにソケットが閉じられているこ とを意味します。 socket.TransferOwnership(socketId);
26.
Demo: Multi-player Game 要件: 1.
ソケット経由のアプリケーション間通信 2. アプリが実行していない場合でも、ソケット経由で要求を 受け取れる 使用API: Windows.Networking.Sockets
30.
HttpClient (バックグラウンドタスク) Windows.Networking. BackgroundTransfer プロトコル HTTP HTTP/FTP データ格納場所
メモリ及びファイル ファイルのみ 推奨データサイズ 小 (KB) 大 (MB) 耐障害性 (ネットワーク切断/リブート) コード実装必要 中断したところから 再開可能 通信料削減 コード実装必要 クラスに組込済 消費電力削減 コード実装必要 クラスに組込済
31.
BackgroundDownloader downloader =
new BackgroundDownloader(); DownloadOperation download = downloader.CreateDownload(new Uri(downloadlocation), file); Task<DownloadOperation> startTask = download.StartAsync().AsTask(); downloads = await BackgroundDownloader.GetCurrentDownloadsAsync (); await download.AttachAsync().AsTask(cts.Token, progressCallback);
32.
Task<DownloadOperation> startTask = download.StartAsync().AsTask(); Task
continueTask = startTask.ContinueWith(OnDownloadCompleted); BackgroundTransferCompletionGroup completionGroup = new BackgroundTransferCompletionGroup(); //Create background task builder builder.SetTrigger(completionGroup.Trigger); BackgroundDownloader downloader = new BackgroundDownloader(completionGroup);
33.
Demo: Multi-player Game 要件: 1.
バックグラウンドで新しゲームレベルをダウンロード 2. ダウンロードが完了したらトースト通知 使用API: Windows.Networking.BackgroundTransfer
35.
http://aka.ms/NetworkApiChoice https://github.com/Microsoft/Windows-universal-samples/ • HttpClient • WebSockets •
SocketActivityStreamSocket • BackgroundTransfer http://aka.ms/WinDevUserVoice
Download