Ik volg het project van een zij-lijntje al vanaf versie 0.3 ongeveer.
Websockets, long polling en server sent events is niet persé iets baanbrekends nieuws ofzo, wat mij wel ENORM blij maakt, is dat SignalR dit echt zooo eenvoudig maakt.
En het is nog eens goed schaalbaar ook (intern is het gewoon een messagebus).
De eerste publieke 'stabiele' versie 0.5 gebruiken we momenteel voor een back-end omgeving voor het beheren van (een deel van) een webwinkel.
Een van de features van die beheer omgeving is dat bepaalde items 'gelocked' worden, wanneer iemand hem gaat bewerken.
Als dit item gelocked wordt, krijgen alle clients die dat item ook bekijken (of als het item onderdeel is van een list weergave) gelijk feedback, dat dit item 'gelocked' is.
Of als er (vanuit een back-end process) nieuwe data beschikbaar is, bijvoorbeeld nieuwe data uit een product feed. Krijgt elke verbonden client een melding hiervan.
Zonder page reloads, zonder zélf ajax requests te moeten schrijven.
Simpel gezegd bied een SignalR hub, de mogelijkheid om vanuit de server, javascript code uit te voeren op de client, en andersom.
Kwestie van:
Clients.All.iHaveNewData(data) // C# op de server
client.iHaveNewData = function(data) { ... } // javascript callback in de browser.
en andersom:
c#
public User GetUser(string id) { }
js:
server.getUser('bla').done(function() { ... });
Uiteraard benoem ik hier echt wat basis dingen, je kan hier nog veel verder in gaan.
Denk bijvoorbeeld aan een Netduino apparaatje, dat een signaal naar een server stuurt, en dit weer naar alle verbonden web-clients stuurt.
Of: Vanuit een bestaande ERP servicebus infrastructuur, laat je 'log' berichten sturen naar signalr. Welke deze weer verwerkt tot mooie logs en doorstuurt naar verbonden web-clients.
Dit gaat met SignalR vrij eenvoudig, is schaalbaar, cross browser en ondersteund al deze transports (longpolling/sse/websockets/etc).
Ik heb (in het topic 'welke tools heb jij gemaakt') een nieuw oss projectje van mij gepost die signalR gebruikt. Ik wilde alleen dit topic niet gelijk misbruiken om te gaan spammen :-)
Mochten mensen alsnog geïnterreseerd zijn, dan post ik hem alsnog, source op github te vinden btw.
Ik ben echter benieuwd of er hier nog mensen zijn die er al wat dieper naar gekeken hebben, al mee hebben zitten spelen, problemen tegenkomen? vragen hebben, etc.