WEB开发网
开发学院图形图像Flash 使用SilverLight构建插件式应用程序(八) —聊天插... 阅读

使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现

 2008-10-23 11:43:33 来源:WEB开发网   
核心提示:这次是一个在线聊天的插件,插件参考了MSDN中Duplex WCF服务的实现和网上一些聊天程序,使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现,基本可以实现用户登录和聊天,如果用户不存在就保存聊天数据到数据库,代码如下:[DataContract]public class Ch

这次是一个在线聊天的插件,插件参考了MSDN中Duplex WCF服务的实现和网上一些聊天程序,基本可以实现用户登录和聊天,如果用户不存在就保存聊天数据到数据库,等用户下次登陆的时候读入。

这个是聊天时候的图例:

使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现

1: 定义聊天时候传输聊天的数据实体,这个所有WCF都是一样的,没什么特殊的,代码如下:

[DataContract]

public class ChatMessage
{
  [DataMember]
  public string From;
  [DataMember]
  public string To;
  [DataMember]
  public int Type;//1:Text;2:Url;3:File;4:Image;5:Audio;6:Video;0:None;-1:System;-2:Heart;
  [DataMember]
  public string Data;
  [DataMember]
  public byte[] Content;
}

这样用户每次聊天就发送的使这个数据了。这是服务器端的定义。

2:定义回调时候的接口:

[ServiceContract]
public interface IWSChatClient
{
  [OperationContract(IsOneWay = true)]
  void Receive(Message returnMessage);
}

3:定义Duplex WCF服务的实现,

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceContract(Namespace = "WindCloud", SessionMode = SessionMode.Required, CallbackContract = typeof(IWSChatClient))]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class WSChatService
{
  static Dictionary<string, IWSChatClient> chatClients = new Dictionary<string, IWSChatClient>();
  static List<string> m_NameList = new List<string>();
  private static Object syncObj = new Object();
  static int guestIndex = 1;
  string name = "";
}

1 2 3 4  下一页

Tags:使用 SilverLight 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接