Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Whats the best way to send an event to all workstations

I hope someone can guide me as I'm stuck... I need to write an emergency broadcast system that notifies workstations of an emergency and pops up a little message at the bottom of the user's screen. This seems simple enough but there are about 4000 workstations over multiple subnets. The system needs to be almost realtime, lightweight and easy to deploy as a windows service.

The problem started when I discovered that the routers do not forward UDP broadcast packets x.x.x.255. Later I made a simple test hook in VB6 to catch net send messages but even those didn't pass the routers. I also wrote a simple packet sniffer to filter packets only to find that the network packets never reached the intended destination.

Then I took a look and explored using MSMQ over HTTP, but this required IIS to be installed on the target workstation. Since there are so many workstations it would be a major security concern.

Right now I've finished a web service with asynchronous callback that sends an event to subscribers. It works perfectly on a small scale but once there are more than 15 subscribers performance degrades considerably. Polling a server isn't really an option because of the load it will generate on the server (plus I've tried it too)

I need your help to guide me as to what technology to use. has anyone used the comet way with so many clients or should I look at WCF?

I'm using Visual C# 2005. Please help me out of this predicament.

Thanks

like image 641
Tyler Avatar asked Dec 18 '08 09:12

Tyler


People also ask

What is Windows event Forwarder?

What is Windows Event Forwarding? Simply put, Windows Event Forwarding (WEF) is a way you can get any or all event logs from a Windows computer, and forward/pull them to a Windows Server acting as the subscription manager.


1 Answers

Consider using WCF callbacks mechanism and events. There is good introduction by Juval Lowy.

Another pattern is to implement blocking web-service calls. This is how GMail chat works, for example. However, you will have to deal with sessions and timeouts here. It works when clients are behind NATs and Firewalls and not reachable directly. But it may be too complicated for simple alert within intranet.

like image 116
Ihar Voitka Avatar answered Sep 25 '22 16:09

Ihar Voitka