Home  >  Article  >  Backend Development  >  Overview of developing an XML chat program with IE and SQL2k

Overview of developing an XML chat program with IE and SQL2k

黄舟
黄舟Original
2017-03-03 17:04:351793browse

Years of competition between different browsers have resulted in the creation of many tools to help developers complete tasks that were previously difficult to do. Now, with just a little script, you can create an application that binds data to a user control so that it communicates with the server through an embedded proxy-type control.

In Internet Explorer (IE), these things include xml data islands and xmlhttp objects. XML data islands are used to bind data to form elements, and XMLHTTP objects are used to navigate to other pages within the current page. Create synchronous and asynchronous calls to the server. I will use these two easy-to-use features to create a simple chat application, which consists of some asp pages that act as UI, javaScript that implements client functions, and T-SQL that completes business logic in SQL Server 2000 .

Clients and servers communicate using XML. After the Web server receives a message chunk, the message chunk is appended to a timestamped MESSAGES table in SQL Server. Based on a predefined time interval, the client will request updated information from the server, including a list of messages and a list of online users appended to the database since the last time it requested information from the server.

The client will send an 7e799be3545522a0b5d454493d321d80 to the server via the XMLHTTP object. The action is either a request to refresh the message and user list, or to send a new message. These actions are stored in a table called ACTIONS. The server will respond to the corresponding request or accept a new message and append it to the MESSAGES table.

When the server responds to a message request, it will return a list of all new messages since the last request. To track customer activity, I use an ACTIVITY table that contains the datetime of customer activity. The customer's identity is stored in the table HANDLES, which has an intuitive name.

The following is the script to create the table:

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]

All data operations will be completed through stored procedures. All data interfacing will be done through a generic COM that acts as a liaison between the Web server and SQL Server 2000. The COM object exposes a method RunSPReturnStream which I want to use. The first parameter of this method is the name of the stored procedure, and the second parameter is an array of parameter arrays. The parameter array is a simple array of the following format: (paraName, paramType, paramLength, paramValue). paramType is one of the ADO Parameter Type enumerations. An ASP page is responsible for accepting actions and creating responses, I'll call it HandleAction.asp.

The chat page will contain an area to display chat messages; this area is a TABLE contained in a DIV. This TABLE is bound to an xmlMessages XML data island. Another area displays the current user; this area is also a TABLE contained in a DIV, which is bound to an xmlUsers XML data island. There is also a TEXTAREA for users to enter messages.

The above is an overview of the development of an XML chat program with IE and SQL2k. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn