日期:2013-06-29  浏览次数:20870 次

用ASP编写网络传呼机

各位喜欢上网冲浪的朋友一定都去过网易的虚拟社区吧,里面的传呼台功能想必是很得大家的喜爱。通过传呼台,我们可以呼叫任何一个目前在虚拟社区里面冲浪的网友,可以实现在线交谈哦。
其实,我们使用ASP完全可以实现同网易虚拟社区里面传呼台同样的功能,怎么?不相信?那就跟随我一步一步用ASP来实现网络传呼机吧。
        Active Server Pages(ASP)是服务器端脚本编写 环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。ASP 应用程序很容易开发和修改。
接下来,我们就开始编写我们的网络传呼机了。
首先,实现网络传呼的功能有两种方法:
一. 利用数据库实现传呼信息的保存和处理
这种方法的优点是,存储信息处理非常方便,但是它的缺点也是显而易见的,就是增加了服务器端的负担,因为频繁的存储数据库将会大大增加I/O存取次数,导致网站的连接速度变得缓慢。
二. 直接使用Application来保存传呼信息
这种方法的优点是,速度明显快于使用数据库来保存传呼信息的方法;缺点是处理信息比较繁琐,但是很值得的哦,我们首先要保证的是整个网站的性能。
       
        综合上面的因素,我们将采用第二种方法来编写网络传呼机,对于第一种方法,我会在最后简单介绍一下。
        我们的网络传呼机需要三个页面,也就是“传呼台”页面,“显示传呼信息”页面,“监视传呼机”页面。
        “传呼台”页面(bbsSendBegic.asp)是用来向其他在线用户发送信息的页面,自然就好像是我们生活中的传呼台喽。
        “显示传呼信息”页面(bbsSendInfo.asp)是在有人呼叫你的时候,弹出来的显示呼叫内容的页面,就像你自己的BP一样,但我们的网络BP机功能更加强劲哦,他可以即时回复别人给你的信息,也可以稍候再回复,或者干脆清除掉这条信息。
        “监视传呼机”页面(bbsAutoSearch.asp)是随时监视是否有人呼叫你的页面,就像一个不知疲倦的自动机器人一样一直在监视所有的传呼信息,并且会过滤出来只属于你的传呼信息。
          三个页面之间只有“显示传呼信息”页面和“监视传呼机”页面关系密切, “传呼台”页面是一个相对独立的页面,三者关系如下图:

                                   没有直接关系                               显示到”BP机”
                        




         接下来,我们开始编写第一个页面,就是“传呼台”页面。在这个页面里面,我们要实现如下功能:
1. 取得当前在线的用户列表
2. 发送信息到传呼信息队列当中进行排队,为以后取出信息做准备

页面的具体代码如下(bbsSendBegin.asp):   
代码中有详细的注释信息,可以仔细阅读

<%@ Language=VBScript %>
<%
users=split(application("OnlineUser"),",")  ‘分割得到当前在线用户的列表,保存到一个数组中
If trim(request("act"))="wantsend" then  ‘判断目前的操作状态
  who=trim(Request.Form("who"))          ‘得到被呼叫用户名称
  content=trim(Request.Form("content")) ‘得到呼叫内容
  meme=trim(request("userid"))                ‘得到发送传呼的用户名称
  If who="" or content="" then
      Response.Redirect "error.asp?msg=姓名或者讯息内容为空,无法传送!"
  end if
‘下面将发送的信息送至传呼信息队列当中.
  If trim(application("Message"))="" then
      Application.Lock
      application("Message")=who & "$" & content & "$" & meme   ‘放置到传呼信息队列当中
      Application.UnLock
  else
      Application.Lock   ‘‘放置到传呼信息队列当中
      application("Message")=application("message") & "&" & who & "$" & content & "$" & meme
      Application.UnLock
  end if
  ‘发送完毕,关闭页面
  Response.Write "<script language=javascript>self.close();</script>"
end if
%>
<html>
<titl