注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

Windows8:WNS云端交互的架构  

2011-11-18 11:37:56|  分类: Windows 8 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本篇讲了WNS的云端交互的架构,以及如何创建一个支持WNS功能(例:动态Title)的程序。
作者:Optimist Liu <Optimist_Liu@asus.com> (http://wafdh.blog.163.com/)

什么是WNS?
WNS的全称Windows Push Notification Service. 通过WNS的机制可以更新在START界面上的Tile,让程序看起来更有生命力。或是弹出一个toast notification,或是更新badge.
若是不了解tile,notification,badge是什么请参考Using tiles and notifications.课程.


WNS的架构
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~

绿色框里面的模块是需要用户来实现的。蓝色框里的模块是微软已经实现好的。
WNS是运行在云端的.
如上图:实现WNS消息推送分三步
第一步,请求一个Channel URI.
第二步, 把申请到的URI传回到你的云端服务器,告诉服务器使用这个URI来给我传送通知.
第三步,一旦你的云端服务器有通知,服务器决定何时以什么形式来传送什么内容.然后服务器经过认证然后把通知传给WNS,WNS然后推送Notification给设备。你的设备受到通知后,就会安静的把通知显示出来。


第一步请求一个Channel URI要点
每个在Start界面上的tile都有一个独一无二的Channel URI
每次APP运行时被请求. URI能够改变.
Channel URI是WNS产生的。
对APP时不透明的。


第二步 传回URI到服务的要点
注册你的APP到你的云端服务器,必须是经过认证的和安全的。
存储Channel URI 然后和任何APP特定的上下文联系在一起。
创建你发送notification的业务逻辑。


第三步 认证和发送通知的要点
使用 OAuth2 认证
使用HTTP POST发送请求。
用xml来有效负荷.


云端服务器需要满足的条件:                                        
提供对channel URI的注册的安全,基于WEB的API             
提供对Channel URI持久的存储
提供tile或toast images的存储空间。


Window Azure是如何做到的(Sample)
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~

首先安装Windows Azure Toolkit for Windows 8
下载地址http://watwindows8.codeplex.com.
打开网站点击右边download

Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~

下载完成后安装。一般安装的路径在c:\WindowsAzure\WATWindows.
打开这个路径然后双击setup.
安装前要先开启.net framework 3.5 和IIS服务。控制面板---程序-----打开或关闭windows功能,然后选择需要的功能就好了。
安装的过程中会需要一些依赖软件,如果没有会安装不成功.安装不成功的画面上有download的链接,点击下载就行了。 这个过程会比较漫长。

Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~

配置好后,打开Visual Web Developer 2010 express (在Desktop上有个快捷方式).
New—project- c#--cloud---点OK。
之后会弹出如下窗口。
Account Name和Account Key是你申请的Windows Azure的账号和密码。
不过我们本地开发的话,先选Use Storage Emulator.
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
选中 Use Storage Emulator后点Next弹出如下窗口
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~ 
可以看到有三个值需要填写Package name, Client secret ,Package SID.
接下来依照指示1,2,3,4来从网页上获取这些值。点击1中的链接,然后copy 2和3的内容到打开的网页中。
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
然后点击I accept. 然后会生成Package name,Client secret,Package Security Identifier(SID).
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
然后把这三个值填到创建工程的弹出框中。
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
点击OK.
然后工程会自动生成一个Sample.你会看到如下画面
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
然后直接按F5运行,浏览器会打开一个页面,然后选择继续,会看到如下画面。 
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
然后进入到创建的项目所在的文件夹,进入到client目录,使用vs2011打开WindowsCloudApp1.Client.wwaproj
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
然后点击运行 进入如下画面
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
点击Reopen channel and send to server. (这里是我们之前讲的WNS的第一步和第二步,申请一个channel URI,并传回到云端服务器)
就会开启一个channel。在output下会显示出channel的值。
然后通过TAB键回到之前的log on网页 用户名admin,密码:Passw0rd! (注意中间的0是零).
登陆后 配置push notification页面,然后点send(这里是WNS的第三步,云端服务器把notification 推送到WNS服务器,然后WNS再通知到本地)。就可以看到toast了。
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
Windows8:WNS云端交互的架构 - 乂乂 - 一个人,一支烟  ·~~
 
示例Sample成功。


  评论这张
 
阅读(1917)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017