摘要:
在之前的文章中,已经开发了一个简单的WebIM,但是这个WebIM是在独立的页面中的,今天发布的WebIM是一个可以嵌入到自己网页中的版本,你只需添加少量的代码,就可以在页面中嵌入一个WebIM。不过目前这个WebIM的功能比较简单,如果大家有什么需求可以在评论中提出,或通过WebIM与我联系。以后可能还会将云翔在线软件平台中的网盘等在线应用集成进来。源代码下载下载源代码后,按以下步骤操作就可以将WebIM嵌入到网页中。1.将Release中的Bin,App_Data和YunXiang三个文件夹拷贝到网站的根目录下。2.在将要嵌入WebIM的页面中添加一下引用:<link href=&q 阅读全文
摘要:
WebIM系列文章在一步一步打造WebIM(1)一文中已经使用Comet实现了一个简单的WebIM,那么,Comet究竟和一般的打开网页有何区别,本文将通过编写一个简单的HTTP服务器来说明两者的区别。所谓网站,其实可以理解为服务器上的一个应用程序,该应用程序创建了一个Socket并在80端口(一般是80端口)上监听,并接受和处理浏览器发送过来的HTTP请求。当你打开网页时,浏览器会发送一个HTTP请求到服务器,之后浏览器将一直等待知道服务器发送完HTTP回应。当服务器接受到这个http请求后,就会解析HTTP请求的头部,根据报文中的信息向浏览器发送数据(网页,图片,数据等),当服务器发送完数 阅读全文
摘要:
WebIM系列文章在一步一步打造WebIM(1)和(2)中,已经讨论了如何开发一个WebIM,并且使用缓存来提高WebIM的性能,本文将编写一个程序模拟大量用户登录来对WebIM进行性能测试。1.200个用户同时在线测试一将模拟200个用户同时登录的聊天室,每个用户以1条消息/秒的速度发送消息(由于网络和服务器处理延迟,可能多于1秒)环境参数操作系统:Window Server 2003内存:2GCPU:AMD Athlon(tm) 64 X2 Dual 2.4GHz服务器:IIS6数据库:SQLite消息缓存数量:200测试过程截图测试结果测试结果解析测试程序启动了200个接收线程和200个 阅读全文
摘要:
WebIM系列文章在一步一步打造WebIM(1)一文中,已经介绍了如何实现一个简单的WebIM,但是,这个WebIM有一个问题,就是每一次添加消息监听器时,都必须访问一次数据库去查询是否有消息,显然,如果用户比较多时,必然对数据库的压力比较大。解决这个问题的一个方法就是先将消息缓存在内存中,不立即写入数据库,等到缓存满了才写入数据库。本文将介绍如何实现消息缓存。基本思路实现一个消息缓存管理类,以用户为单位缓存所有消息,每一个用户对应着一个List<Message>,保存着该用户新收到的消息,消息缓存管理用一个Hashtable保存着所有用户对应的List<Message> 阅读全文
摘要:
WebIM系列文章之前笔者发布的云翔在线软件平台中已经包含了一个功能相对比较齐全的WebIM,这个系列的文章就是介绍如何开发出功能类似的WebIM,在文章开始前,先介绍一下相关的技术:1.CometComet 是一种新的 Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet 架构非常适合事件驱动的 Web 应用,以及对交互性和实时性要求很强的应用,如股票交易行情分析、聊天室和 Web 版在线游戏等。在.NET要实现Comet就要用到IHttpAsyncHandler,在开始阅读文章前,建议先了解一下IHttpAsy 阅读全文