SilverLight搭建WCF聊天室详细过程(十)接收离线消息
时间:2010-12-26 来源:fugitiver
上一节为大家介绍了如何组装消息,这一节主要为大家讲解离线消息的接收,考虑以下情景,如果某用户不在线,我现在想发消息给他,这就要用到离线消息收取,当这个用户登陆后自动提示有离线时接收到的消息,先看下流程图:
流程图讲解:当用户发送离线消息后,服务端查找接受用户是否在在线用户列表里,如果存在则回调该客户端,如果不存在则把消息写入到数据库,当用户登陆时会首先查找是否有自己的未读消息,如果有则用回调函数rMessage()返回生成消息显示。
主要代码:

{
dp.commondText = "select SendUser,MessageContent,SendTime from Im_Message where ReceiveUser='" + ReceiveUser + "' and IfRead=False";
DataTable dtUnRead = dp.queryDatatable();
if (dtUnRead.Rows.Count > 0)
{
foreach (DataRow row in dtUnRead.Rows)
{
if ((currentClient as IContextChannel).State == CommunicationState.Opened)
{
currentClient.rMessage(row["SendUser"].ToString(), row["MessageContent"].ToString(), row["SendTime"].ToString());
}
}
dp.commondText = "update Im_Message set IfRead='True' where ReceiveUser='" + ReceiveUser + "'";
dp.queryNone();
}
}
代码不用多少解释,主要是循环每一行然后返回给客户端,然后把读取后的消息设置为已读。方便以后做聊天记录查询!
谢谢大家每次的意见,这次讲解占了大部分,希望对新手入门带来帮助,如果各位朋友觉得有所帮助,希望大家点下推荐,你们的支持才是我更新博客的动力,谢谢大家。
本节代码以及数据库下载
相关阅读 更多 +
排行榜 更多 +