Update July 30th 2011: The source code can now be downloaded in an updated version from here: https://github.com/maate/OCometNet.
This post contains the source code for the comet project (url: http://retkomma.wordpress.com/2009/08/05/server-to-client-notification-using-asp-net-and-comet-approach/).
The download link is at the bottom of this post. The code structure is described first.
How to run the test project
Open in Visual Studio and hit F5 to open Default.aspx page. Now the entries in the xml file notifications.xml will be displayed in the browser. Has been tested with IE only, but will probably work with other browsers as well.
Solution design
The figure below presents a brief overview of the solution design. The solution has been implemented sparsely, but with some limits. The code is not compiled and can thus be reviewed if the project library is downloaded.

The code contains the logical mappings:
| Name in the figure above | Code mapping |
| Client | Default.aspx |
| NotificationChecker.ashx | Endpoint:NotificationChecker.ashxBackend: AsyncTaskHandler.cs
Processing from MessageBroker occurs using AsyncResult.cs class. |
| MessageBroker | MessageBroker.cs |
| Message Queue | MessageBrokerRepository.cs |
| Message Queue Database | Not implemented, stub created in notifications.xml |
| UserHandle | AsyncRequestResult.cs |
| Business Module N | Not implemented, can be simulated by using the stub in notifications.xml |
| NotificationAcknowledge.ashx | Not implemented |
The figure is shortly described here:
1 to 3: Client submits user handle
1. The client sends a user handle to notificationchecker.ashx.
2. NotificationChecker.ashx sends the handle to the messagebroker.
3. The message broker registers the user handle.
A to C: A business module N submits a notification message to user U
A. Some module submits a notification message to the message broker.
B. The message broker queues the message.
C. The message broker processes the message queue.
D to E: The message broker processes the message queue
D. The message broker checks if the user has submitted a handle. If she has, the user handle is released.
E. The message broker releases the response to the client
F to H: The client acknowledges the notification response
F. Client sends notification acknowledgement to NotificationAcknowledger.ashx.
G. NotificationAcknowledger sends acknowledgement to MessageBroker which finally removes message from repository.
H. The Message Broker sends a 200 (OK) response back to the client
Download the code from: http://www.box.net/shared/nbp04r1ujs

Pingback: Server to Client notification using ASP.NET with Comet Approach « Linguistic forms
Hi,
We have downloaded your code and tried to modify according to our requirement. We implemented sender and receiver part in a single page. Problem is when I am tring to send message by clicking on button “Send notification” when there is no message in queue it goes in requesting mode.
Can you please share your email id so that I can send you the code?
Thanks & Regards,
Brajesh
Hey, I would be glad to take a look at it:-) I have a hotmail.com email address with the username mortenmaate which you are welcom to write to.
Br. Morten
Hi,
I have also downloaded the source.
i just tried the basic example it works right.
but I have encountered problems when refreshing AddNotification page think IIS is taking long time to serve other pages hosted in same directory, once notification is served to client.
To reproduce the same,try sending msgs from
AddNotification page(i tried using AJAX to send data to AddNotification ) ..but after few requests IIS gets very slow serving request for
AddNotification page..takes atleast 1-2mins for the AddNotification page to load.
Strangely if u refresh Default.aspx the
AddNotification page appears.
Dunno the reason why?
Please help
Amit
Hi, it seems the download link for your project is broken.
It would be great if you can have it fixed or re-upload the zip file.
Thanks
Rych
Download the code from: http://www.m-8.dk/downloads/testcomet.zip
i can’t download code on that link. Plz fake that link.
Tks so much!
So, finally I succeeded in fixing the broken link – sorry for the inconvenience
i am getting error..an item with the same key has already been added…please help i need this working urgently….
I have started working on a production ready version of the comet source code. You can follow – and contribute! – to my work here:
https://github.com/maate/ocometnet
I’m not finished yet, but I expect at least a first version to be ready within a few months.
Hope to see the full version of your Comet when ready. Update this blog or send me an email when you hit 1.0!
The source code can now be downloaded in an updated version from here: https://github.com/maate/OCometNet. I’m still not ready for a 1.0, but it is much better than the old stuff.