概述IE和SQL2k开发一个XML聊天程序

不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务。现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信。

在 Internet Explorer(IE)中,这些东西包括 XML 数据岛和 XMLHTTP 对象,XML 数据岛用于将数据绑定到表单元素,XMLHTTP 对象用于在当前页面内不导航到其它页面的情况下创建对服务器的同步和异步调用。我将使用这两个易用的特性创建一个简单的聊天应用程序,该应用程序由一些充当 UI 的 ASP 页面,实现客户端功能的 JavaScript,和 SQL Server 2000 中完成商业逻辑的 T-SQL 所组成。

客户和服务器使用 XML 通信。在 Web 服务器接收到一个消息块之后,消息块会追加到 SQL Server 中的一个带有时间戳的 MESSAGES 表中。基于预先定义好的时间间隔,客户会从服务器请求更新信息,包括自上一次从服务器请求信息到现在为止追加到数据库中的消息列表和联机用户列表。

客户将通过 XMLHTTP 对象发送一个 <action/> 到服务器。动作(action)要么是请求刷新消息和用户列表,要么是发送一个新消息。这些动作保存在一个叫做 ACTIONS 的表中。服务器将响应相应的请求或者接受一个新消息然后追加到 MESSAGES 表中。

当服务器响应一个消息的请求的时候,会返回上次请求之后的所有新消息的一个列表。为了跟踪客户的活动,我使用一个 ACTIVITY 表包含客户活动的日期时间(datetime),客户的标识保存在表 HANDLES 中,该表的名字很直观。

下面是建表的脚本:

CREATE TABLE [dbo].[ACTIONS] (
    [action_id] [int] IDENTITY (1, 1) NOT NULL ,
    [action_name] [varchar] (50) NULL ,
    [action_descr] [varchar] (255) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[ACTIVITY] (
    [handle_id] [int] NULL ,
    [action_time] [datetime] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[HANDLES] (
    [handle_id] [int] IDENTITY (1, 1) NOT NULL ,
    [handle] [nvarchar] (63) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[MESSAGES] (
    [msg_id] [int] IDENTITY (1, 1) NOT NULL ,
    [message] [nvarchar] (255) NULL ,
    [action_id] [int] NULL ,
    [action_time] [datetime] NOT NULL
) ON [PRIMARY]

所有的数据操作将通过存储过程完成。所有的数据接口将通过一个充当 Web 服务器和 SQL Server 2000 的联络员的泛型 COM 完成。COM 对象暴露一个我要使用的方法RunSPReturnStream。该方法的第一个参数为存储过程的名字,第二个参数是参数数组的数组。参数数组是一个如下格式的简单数组:(paraName, paramType, paramLength, paramValue)。paramType是 ADO Parameter Type 枚举之一。一个 ASP 页面负责接受动作和创建响应,我把它叫做HandleAction.asp。

聊天页面将包含一个区域显示聊天消息;这个区域是一个包含在 DIV 的 TABLE。这个 TABLE 被绑定到一个xmlMessages XML 数据岛上。另外一个区域显示当前的用户;这个区域也是一个包含在 DIV 中的TABLE,它被绑定到一个xmlUsers XML数据岛上。另外还有一个 TEXTAREA 供用户输入消息。

--------------------------------------------------------------------------------
本文作者:Phillip Perkins是Ajilon Consulting的签约人。他的经验很丰富,从机器控制和客户/服务器到企业内部网应用。

(0)

相关推荐

  • 概述IE和SQL2k开发一个XML聊天程序

    不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务.现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信. 在 Internet Explorer(IE)中,这些东西包括 XML 数据岛和 XMLHTTP 对象,XML 数据岛用于将数据绑定到表单元素,XMLHTTP 对象用于在当前页面内不导航到其它页面的情况下创建对服务器的同步和异步调用.我将使用这两个易用的特性创建一个简单的聊天应用程序,该应用程序由一

  • Android Studio和阿里云数据库实现一个远程聊天程序

    没有阿里云数据库的可以买个最便宜的,我是新用户9.9元买了一个 1.买到后点击左上角的工作台 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 开始写Android Studio项目代码了,先来看看我的项目结构 依赖包下载地址 Central Repository: mysql/mysql-connector-java (maven.org) 我第一次下了个版本比较新的发现会报错,由于我能力有限,所以就老实下载一个低版本的 添加依赖包应该都会了吧,不要忘了添加后还要

  • 分享一个C#编写简单的聊天程序(详细介绍)

    引言 这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编程基础(篇外篇).聊天程序的实现模式.程序实现. 程序的分析与设计 1.明确程序功能 如果大家现在已经参加了工作,你的经理或者老板告诉你,"小王,我需要你开发一个聊天程序".那么接下来该怎么做呢?你是不是在脑子里有个雏形,然后就直接打开VS2005开始设计窗体,编写代码了呢?在开始之

  • 指南:想成为一个JSP网站程序员吗?

    任何Web开发人员需要必备的技巧主要有以下这些技术. 开发Web应用程序的技术已经变得更成熟.更复杂了.现在,构建一个Web应用程序不仅仅需要简单的HTML技术了.数据库访问.脚本语言和管理都是一个Web程序员需要具备的技术.让我们来看看要成为一个市场上受欢迎的Web开发人员都需要些什么技能吧. 自从CERN(欧洲粒子物理研究所),日内瓦附近的高能物理研究中心,在1991年发布了Web以来,Web技术已经从静态的内容和Common Gateway Interface(CGI)发展成servlet

  • 详解基于java的Socket聊天程序——服务端(附demo)

    写在前面: 昨天在博客记录自己抽空写的一个Socket聊天程序的初始设计,那是这个程序的整体设计,为了完整性,今天把服务端的设计细化记录一下,首页贴出Socket聊天程序的服务端大体设计图,如下图: 功能说明: 服务端主要有两个操作,一是阻塞接收客户端的socket并做响应处理,二是检测客户端的心跳,如果客户端一段时间内没有发送心跳则移除该客户端,由Server创建ServerSocket,然后启动两个线程池去处理这两件事(newFixedThreadPool,newScheduledThrea

  • 如何建立一个 XML 的开发环境

    学习 XML 的最佳途经是从简单的开发入手,大胆实践,循序渐进.XML 的妙处只有在开发过程中才能深入体会,离开了开发是学不好 XML 的.因此学习 XML 首先应该建立一个 XML 的开发环境.我给大家介绍一下怎样建立一个基于 Java 的 XML 开发环境.因为我现在没办法用到 Linux,所以所有的例子都是在 Windows 上做的.但是这里介绍的所有的软件在 Linux 和 Windows 上都是可以用的,用法也大同小异.而且除了 Sun 的 JRE 以外都是 open source 软

  • PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节

    一. XML简介 XML(可扩展的标注语言)是一种W3C标准,主要用于Web应用程序和服务器之间实现容易的交互.数据的存储与使用. 使用XML标准编码的数据具有能容易被人和计算机解释的意义和结构.XML数据是平台和应用程序独立的.不用多说,这本身就使XML成为适合于互联网的一个理想的数据交换格式(事实上,它正是因这一用途而被开发的).最近,宽带连接的增长及消费者对于越过任何媒体进行数据共享的应用软件的需求意味着,XML Web服务和应用软件正变得越来越丰富. XML的发明正是为了解决描述网上丰富

  • ASP开发基于XML的留言板

    XML(Extensible Markup Language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的.由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息.另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,Flash 5 等.由于世界各大计算机公司的积极参与,XML正日益

  • 微信小程序云开发 搭建一个管理小程序

    概述 : 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥. 目前提供三大基础能力支持: 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库 存储:在小程序前端直接上传/下载

  • SpringBoot + Vue + Electron 开发 QQ 版聊天工具的详细教程

    一.简介 这是一款基于 JS 实现的超轻量级桌面版聊天软件.主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket.也支持web网页聊天实现.文字聊天,互传文件,离线消息,群聊,断线重连等功能. 先看一下效果,下图左边是web版,右边为PC版. 二.本地搭建 2.1 技术栈 后端技术栈: springboot: 让开发人员快速开发的一款Java的微服务框架. tio: 是百万级网络框架oauth2.0: OAuth 2.0 是一个行业的标准授权协议. OAuth 2

随机推荐