ASP.NET and MSN Messenger

I have been working on a web application that can send me text messages using MSN Messenger. It works pretty well except I have to double click the contact to join the conversation before I can receive the message. I get an alert that my contact has come online but not that they have sent a message. My prototype is using the DotMSN 1.2 DLL which you can download at: http://www.xihsolutions.net/dotmsn/download/version1/DotMSN.dll. Make sure you add a reference to that DLL in your Visual Studio 2003 project. You will need two MSN Messenger contact accounts to test this web application. I recommend using an alternative email address and MSN Messenger 4.7 with Windows Live Messenger on the same machine. Here is my working VB.NET code which took a long time to figure out. I could not find any complete sample code on the Internet:

Imports DotMSN
Public Class Message
    Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    Protected WithEvents btnContact As System.Web.UI.WebControls.Button

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
    End Sub
    Public Sub ConversationCreated(ByVal sender As Messenger, ByVal e As ConversationEventArgs)
        AddHandler e.Conversation.ContactJoin, AddressOf ContactJoined
        AddHandler e.Conversation.ConnectionEstablished, AddressOf ConnectionEstablished
        AddHandler e.Conversation.UserTyping, AddressOf UserTyping
    End Sub
    Public Sub ConnectionEstablished(ByVal sender As Conversation, ByVal e As EventArgs)
        ' do nothing
    End Sub
    Public Sub UserTyping(ByVal sender As Conversation, ByVal e As ContactEventArgs)
        ' do nothing
    End Sub
    Public Sub ContactOnline(ByVal sender As Messenger, ByVal e As ContactEventArgs)
        ' do nothing
    End Sub
    Public Sub OnSynchronizationCompleted(ByVal sender As Messenger, ByVal e As EventArgs)
        sender.SetStatus(MSNStatus.Online)
    End Sub
    Private Sub ContactJoined(ByVal sender As Conversation, ByVal e As ContactEventArgs)
        ' the contact must clicked on to receive this message
        sender.SendMessage(":D Hi! " & Now())
    End Sub
    Private Sub btnContact_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnContact.Click
        Dim MSN As Messenger
        MSN = New Messenger

        AddHandler MSN.ContactOnline, AddressOf ContactOnline
        AddHandler MSN.ConversationCreated, AddressOf ConversationCreated
        AddHandler MSN.SynchronizationCompleted, AddressOf OnSynchronizationCompleted

        ' this account will be signed out
        MSN.Connect("robert@williamsportwebdeveloper.com", "*******")
        MSN.SynchronizeList()

        ' account to contact with message
        MSN.RequestConversation("robert_robbins@verizon.net")
    End Sub
End Class

Example of a conversation

This entry was posted in General. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit exceeded. Please complete the captcha once again.