上次写了WEBQQ的在线人员的实现,一直都没有时间写后面的。今天抽空上来爬爬格子(经常写代码语言能力变差了,汗)。上一次说了如何实现人员的在线和上下线的问题,今天主要谈谈消息发送和接收的实现实现。其实这个实现需要基于上次的基础。前一次谈了如何定期检查数据库在线人员的情况,同样的道理,在检查在线人员的时候可以检查数据库的消息表,我写了一个方法用来检查数据库中属于当前用户的未读消息。

 1 private   void  checkMessage()
 2          {
 3            string Sql="select distinct sender from message where  state=1 and recrieve='"+this._UserID+"'";
 4            DataTable msgtb=Data.DataSetQuery(Sql,"msg").Tables[0];
 5            foreach(DataRow r in msgtb.Rows)
 6            {
 7                string username=r["sender"].ToString();
 8                
 9string script="window.open('message.aspx?sender="+username+"&type=0','"+username+"','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=2,width=400,height=400');";
10            Response.Write(script);
11                
12            }
13            
14        }

当检查到符合条件的记录时就用JAVASCRIPT打开一个消息窗口弹出消息。
  检查到了消息以后接着要在消息窗口中显示未读消息。发送消息和接受消息都用的一个窗口根据不同参数来判断是否读取数据库数据(分两中状态,一种是选择要发送的对象直接打开的窗口,一种是根据上面方法检查到有信息而自动弹出的窗口),在这里我写了一个属性

1 private   string  Type
2          {
3            get{return Request.QueryString["type"].ToString();}
4        
5        }

下面是根据该属性来判断是否读取数据库消息的方法,下面方法从数据库读取了相关信息,并把他们的状态都从未读改为已读,这样读过的信息下次就不会再显示出来。

 1 private   void  checkMsg()
 2          {
 3          if (Type.Equals("0")) {
 4           string sql="select *,b.username from message a,user_info b where b.userid=a.sender and a.state=1 and a.sender='"+sendName+"' and recrieve='"+this._UserID+"'";
 5              DataTable dt=Data.DataSetQuery(sql,"msg").Tables[0];
 6
 7              this.BindBaseList(DataList1,dt);
 8              sql="update message set state=0 where state=1 and sender='"+sendName+"' and recrieve='"+this._UserID+"'";
 9              Data.EditData(sql);
10
11          }
12        }

最后是发送消息的代码,这个比较简单,只是向数据库插入一条记录然后关闭当前窗口

1 string  sql = @" insert into message(sender,recrieve,message,creattime)
2 values(' " + this ._UserID + " ',' " + sendName + " ',' " + tb_concent.Text + " ',getdate()) " ;
3             Data.EditData(sql);
4              this .Response_Page( " 消息发送成功。 " , " debug " );
5             Response.Write( " <script language=javascript>window.close();</script> " );
6              this .tb_concent.Text = "" ;

这样一个WEBQQ的基本功能就实现了,代码并不复杂,关键是想说明我做这个东西的思想方法。也许我的想法和功能都很简单,但是有很多东西通过自己想法实现的都比较有意思,有做类似东西的朋友也可以多多交流,希望能给我更多的想法和思路:)<script language="javascript" src="http://b.dx05.51.la//j/3271.js" type="text/javascript"> </script>

关于WEBQQ的实现(二)相关推荐

  1. C#.Net分类随笔列表

    也说C#中的Immutable fox23 2008-07-26 18:29 阅读:646 评论:8   谁动了我的构造函数? AndyHai 2008-07-26 16:18 阅读:643 评论:6 ...

  2. python webqq机器人_python模拟开发WebQQ(二)

    前端页面设计 前端主要采用bootstrap和jquery开发,聊天室的页面展示代码在template/webqq/dashboard.html 主要设计分为: 对data_type的切换是联系人还是 ...

  3. WebQQ群发限制的突破

    任何事物都有双面性. WebQQ作为一个跨平台的一站式QQ体验,继承了PC版QQ的很多优点,因此,也越来越受到营销行业人士的青睐.批量群发消息,省去很多重复性的工作.但是,众所周知的,由于群发所需的技 ...

  4. html5的优势ie9,WebQQ升级支持IE9 充分运用HTML5优势

    日前,腾讯宣布WebQQ将针对微软IE9进行全面升级,充分运用HTML5技术和潜能,针对IE9浏览器作出定制化的产品特性.与此同时,为了给用户提供更快速.平滑.安全的使用体验,未来WebQQ将全面投入 ...

  5. webQQ迷你版协议(基于http://w.qq.com)

    基于http://w.qq.com,现在把命令汇总一下: 注:本协议在QQ群93772282中有word版本的下载,希望大家入群下载(2012年2月12日测试有效) 本文章没有文字格式,下载word版 ...

  6. (转)WebQQ协议开发实战

    首先装了一个Fiddler2,还真不错,事半功倍,webqq从登录到获取相关的信息的http全都抓下来了,然后慢慢的分析. 一.webqq的登录过程 1.判断帐号状态.首先要判断QQ号码的状态,是否正 ...

  7. python模拟登录qq账号密码_python3.2模拟登录webqq

    1.[文件] qqlogin.py ~ 13KB 下载(675) import hashlib from urllib import request,parse from http import co ...

  8. php+swoole+mysql 仿webqq及时聊天

    一.效果图 二.目录结构 images : 存放图片 js : js文件 swoole |----action.php 数据库操作类 |----config.php 数据库配置文件 |----webs ...

  9. php mysql qq登录_php+swoole+mysql 仿webqq及时聊天

    一.效果图 二.目录结构 images : 存放图片 js : js文件 swoole |----action.php 数据库操作类 |----config.php 数据库配置文件 |----webs ...

最新文章

  1. 综述|工业金属平面材料表面缺陷自动视觉检测的研究进展
  2. robot.txt 搜索引擎 蜘蛛爬虫 搜索规则
  3. 软件工程 软件的估计为什么这么难
  4. JSP:1. 指令(page  ;include ;taglib)2. 内置对象
  5. java 二进制 归属权限_【Java EE 学习 75 上】【数据采集系统第七天】【二进制运算实现权限管理】【权限分析和设计】...
  6. 《TCP/IP Sockets 编程》笔记5
  7. 【ZOJ - 3715】Kindergarten Election(枚举得票数,贪心)
  8. 下载 Java 学习的权威文档
  9. MacBook 没有响应的应用程序 CUH
  10. Python 调试:pdb
  11. 如何更新深度linux系统软件,deepin深度系统更新了哪些内容? 最新版deepin更新内容汇总...
  12. STL 之 vector 的使用 (转载)
  13. I.MX6 busybox set hosname and login with root
  14. 事件声音和提示 注册表全攻略
  15. 错误报告函数:strerror和perror
  16. html转换成ppt转换器,ppt转换成word|幻灯片转换成word ppt转视频轻松解决
  17. 微信小程序-将时间转换成几秒前 几分钟前 几小时前 几天前等时间格式
  18. java制作电子钢琴_java 设计 模拟钢琴 完整源码
  19. vmm_xactor
  20. Dell服务器raid5扩容及相关技术mark

热门文章

  1. buffers/cache含义
  2. 创业第16天,设计竞价助手的关键字添加界面
  3. 为什么建议代账企业用软件机器人实现一键报税?
  4. Neo4j教程网盘下载
  5. 与朋友相处之道 2014-12-07
  6. 如何用办公资源PPT模板来汇报工作?
  7. linux常规实战(三)简单的samba共享实现
  8. 电能质量:闪变和波动
  9. USB接口定义;miniUSB接口定义
  10. 基于IOCP的局域网监控系统