很多的sns网站都提供了短消息功能。而且,如果我们在线的话会很快的收到好友的短消息。
这里介绍一种客户端的方法,简单实现。
主要的表:
user
:Uid UName Password 三个字段
Message
:Mid, SenderId, ReceiverId, State, Detail(SenderId和 ReceiverId)都是外键且对应user表中的Uid。
主要的思路很简单:用js每隔五秒钟发送一次ajax请求,获取当前用户在Message表中State为未读取(这里约定为数字1)且ReceverId为当前用户ID的Message 记录的数量。
页面的代码:
<%@ Page Language="C#" CodeBehind="Default.aspx.cs" Inherits="MIDemo._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<!-- 两个js脚本文件-->
<script type="text/javascript" src="SqlHelp/jquery-1.3.2.js"></script>
<script type="text/javascript" src="SqlHelp/GetMessageCount.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div style=" border-color:Green; border-style:solid; margin-top:100px; margin-left:300px; width:300px; height:50px; text-align:center;">
您有<input type="text" value="0" id="messageCount"/><a href="ShowMessage.aspx">条短消息</a>
</div>
</form>
</body>
</html>
js代码:这里用到了Jquery框架,不再赘述,网上有很多的资料。
GetMessageCount.js
//------GetMessageCount.js Begin----------------------
if(!GetMessageCount){
var GetMessageCount = {};
}
$(document).ready(
function(){
GetMessageCount.FindMessage();
}
);
GetMessageCount.FindMessage = function(){
$.ajax({
//处理ajax请求
url:'FindNewMessage.ashx',
// 当前用户的ID,这里图省事就省略了,直接写死为 1,
//实际使用过程中可以从session中获取 。。。。
data:{Uid:1},
cache: false,
//回调函数返回未读短信数目
success: function(response)
{
$('#messageCount').val(response);
},
error:function(data)
{
alert("加载失败");
}
});
//每隔5 秒递归调用一次,刷新未读短信数目
window.setTimeout(GetMessageCount.FindMessage,5000);核心语句
}
//------GetMessageCount.js End----------------------
到了这里,贴出处理ajax请求页面的代码,非常简单
FindNewMessage.ashx
//----------------'FindNewMessage.ashx Begin
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace MIDemo
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class FindNewMessage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//就这一句代码,获取未读短信的数量,返回页面
//后台的sql代码就省略了
int count = SqlHelp.SqlHelp.GetUnreadMessageCount(Convert.ToInt32(context.Request["Uid"]));
//返回页面
context.Response.Write(count);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
//----------------'FindNewMessage.ashx End
分享到:
相关推荐
Asp.Net基于Ajax的无刷新聊天室,可以带来以下两点好处: ·页面实时更新,无需完全刷新页面; ·聊天内容更新时,只需要读取最新的聊天信息,做到“按需取数据”。 本项目将会实现以个基于Ajax的无刷新聊天室,其...
本书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15...
最近做的一个课程设计,是一个基于WEB的聊天程序,利用asp.net ajax1.0控制,来实现局部无刷新。可以包括注册、登录、获取密码(以邮件形式发送新密码)、无刷新显示好友列表、好友在线状态、聊天信息、发送信息、...
用vs2003.net开发的一个聊天室,希望对大家有所帮助.
全书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15...
资源名字:基于C#+asp.net+sqlserver的即时通讯软件设计与实现(源码+文档)_.net_ajax_C#_即时通讯软件.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合场景...
第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX 1.1 ASP.NET AJAX概述 1.1.1 ASP.NET和ASP.AJAX 1.1.2 ASP.AJAX服务器端架构 1.1.3 ASP.AJAX客户端架构 1.2 搭建ASP.NET AJAX开发环境 1.3 第一个ASP...
第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX 1.1 ASP.NET AJAX概述 1.1.1 ASP.NET和ASP.AJAX 1.1.2 ASP.AJAX服务器端架构 1.1.3 ASP.AJAX客户端架构 1.2 搭建ASP.NET AJAX开发环境 1.3 第一个ASP...
全书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15...
本 WebIM 系统采用 B/S 模式,使用浏览器 ajax 实现即时聊天。 服务器端采用 MC 设计模式,Controler 自下而上分为:收发模块、编码模块、加密解密模块、序列化/反序列化模块、主处理模块(包含 DAO);其中加密解密...
第一篇 ASP.NET AJAX概述 第1章 初识ASP.NET AJAX 1.1 ASP.NET AJAX概述 1.1.1 ASP.NET和ASP.AJAX 1.1.2 ASP.AJAX服务器端架构 1.1.3 ASP.AJAX客户端架构 1.2 搭建ASP.NET AJAX开发环境 1.3 第一个ASP...
全书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。. 本书共分为...
全书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。. 本书共分为...
采用asp.net,Ajax技术实现的网页即时通程序
Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)\Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0).rar
采用.net2.0+ajax , 在研究的那段时间,我一直想尝试服务器推,可是没弄好,本即时对话聊天还是采用的ajax轮询, 一对多的关系, 这个功能系统只是根据需要研究之余的衍射产品,在实际应用中会有信息延时的情况...
ASP.NET与AJAX深度剖析范例集 的随书代码 书的目录如下: 目录 第1章 构建自己的网站 第2章 Visual Studio 2005的重要改变 第3章 ASP.NET 2.0新功能剖析 第4章 数据库访问机制的重大变革 第5章...
使用最新的Ajax技术,使其非常快,无需等待页面的刷新,实现了即时通讯的功能。 在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,本系统基于.NET Framework 1.1,使用Visual Studio .NET 2003作为...