자 이번에는 WCF Rest Service를 만들어 보자.
이것도 역시 WCF Rest Service 프로젝트 생성해서
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Notifications
{
private static Dictionary<string,List<Uri>> subscribers = new Dictionary<string,List<Uri>>();
private static object obj = new object();
[WebInvoke(UriTemplate = "register?uri={uri}&appId={appId}", ResponseFormat = WebMessageFormat.Xml, Method = "GET")]
public void Register(string uri,string appId)
{
Uri channelUri = new Uri(uri, UriKind.Absolute);
Subscribe(channelUri,appId);
}
private void Subscribe(Uri channelUri,string appId )
{
lock (obj)
{
if (subscribers.ContainsKey(appId) == false)
{
subscribers.Add(appId, new List<Uri>());
}
if (!subscribers[appId].Exists((u) => u == channelUri))
{
subscribers[appId].Add(channelUri);
}
}
//OnSubscribed(channelUri, true);
}
[WebInvoke(UriTemplate = "GetSubscribers?appId={appId}", ResponseFormat = WebMessageFormat.Json, Method = "GET")]
public List<Uri> GetSubscribers(string AppId)
{
return subscribers[AppId];
}
귀찮아서 소스만 썻다 보면 알듯이
클라이언트가 Register 메소드를 호출하여 URI와 AppID(구분을 위해)
를 주면 그걸 그냥 List에 저장하는 형식이다.
나중에 이걸 DB로 저장하게 바꾸기만 하면 된다.
'Windows Phone 7' 카테고리의 다른 글
[wp7] EUC-KR을 윈폰7에서 사용하기 (5) | 2011.11.08 |
---|---|
[WP7] Toast Notification 만드는법 4 (Mango Ver) (0) | 2011.05.27 |
[wp7] Toast Notification 만드는법 2 (Mango Ver) (1) | 2011.05.27 |
[WP7] Toast Notification 만드는법 1 (Mango Ver) (0) | 2011.05.27 |
[wp7] Customizing WP7 Push Notification Tiles (0) | 2011.05.03 |