使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现
2008-10-23 11:43:33 来源:WEB开发网用户加入聊天室之后,加入到用户队列中,同时从用户聊天的数据库读入其他用户给当前用户的留言并删除留言。
6:用户说话,这是平常一直要使用的方法,接受用户的聊天信息:
/// <summary>
/// 聊天
/// </summary>
/// <param name="receivedMessage"></param>
[OperationContract(IsOneWay = true)]
public void Say(Message receivedMessage)
{
IWSChatClient chatclient = OperationContext.Current.GetCallbackChannel<IWSChatClient>();
ChatMessage text = receivedMessage.GetBody<ChatMessage>();
if (!m_NameList.Contains(text.To))
{
//保存数据到数据库
ChatBLL bll = new ChatBLL();
bll.Add(text);
return;
}
if (!chatClients.ContainsValue(chatclient))
{
return;
}
SendMessageToClient(text);
}
代码很少 ,如果用户没有登陆,就把聊天信息保存到数据库,否则,直接发送到用户的客户端去。
7:用户退出聊天室:
}
/// <summary>
/// 退出聊天室
/// </summary>
/// <param name="receivedMessage"></param>
[OperationContract(IsOneWay = true)]
public void Exit(Message receivedMessage)
{
IWSChatClient client = OperationContext.Current.GetCallbackChannel<IWSChatClient>();
ChatMessage cm = receivedMessage.GetBody<ChatMessage>();
if (chatUsers.Contains(cm.From))
{
chatUsers.Remove(cm.From);
}
if (chatClients.ContainsKey(cm.From))
{
chatClients.Remove(cm.From);
}
}
Tags:使用 SilverLight 构建
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接