To read the article online, visit

ASP Instant Messaging, Part 2

By Ryan S.

  • Read Part 1

  • In Part 1 we discussed some of the basic theory behind messaging. In this part, we will look at the client code. First, let us define our initial functions for getting info outta the application variable, and then displaying it on the client.

    Sub CheckForMessages(fromUserID)
      'Now you see why I do not recommend this
      'for large scale operations!
      aChatDB.Filter = "FromID=" & fromUserID
      If not aChatDB.EOF Then
        Do While not aChatDB.EOF
         cChatDB("ToID") = aChatDB("ToID")
         cChatDB("toName") = aChatDB("ToName")
         cChatDB("FromID") = aChatDB("FromID")
         cChatDB("FromName") = aChatDB("FromName")
         cChatDB("TimeSent") = aChatDB("TimeSent")
         cChatDB("Message") = aChatDB("Message")
      End If
    End Sub

    Now, I do the .Delete on the aChatDB because the sender already has it in their cChatDB, so once the recipient has it in their cChatDB, it is redundant, so eliminating it from the server reduces the memory load of the application variable. (While I recognize at this point it now exists in two separate memory addresses in regards to the two cChatDBs, or potentially more if you opt for a variant of this, to be discussed later in the article, but, each of those optimally ends in 5 minutes, whereas the application variable is much trickier to clean up if left in this state.)

    Next, we need to have code to send messages.

    Sub SendMessage(ToID, toName, Message)
      cChatDB("ToID") = ToID
      cChatDB("toName") = ToName
      cChatDB("FromID") = Session("UserID")
      cChatDB("FromName") = Session("UserName")
      cChatDB("TimeSent") = Now
      'remove the Server.HTMLEncode to let users send HTML
      cChatDB("Message") = Server.HTMLEncode(Message)
      aChatDB("ToID") = ToID
      aChatDB("toName") = ToName
      aChatDB("FromID") = Session("UserID")
      aChatDB("FromName") = Session("UserName")
      aChatDB("TimeSent") = Now
      aChatDB("Message") = Server.HTMLEncode(Message)
    End Sub

    If you notice, I have to lock and unlock the Application variable, because I have no clue if another user is perhaps filtering on it, thus corrupting the data. Clearly then, it is obvious why this fails in larger scales.

    In Part 3 we will look at how to display the ASP messages!

  • Read Part 3
  • Read Read Part 1

  • Article Information
    Article Title: ASP Instant Messaging, Part 2
    Article Author: Ryan S.
    Published Date: Monday, April 10, 2000
    Article URL:

    Copyright 2018 QuinStreet Inc. All Rights Reserved.
    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | E-mail Offers