Ik heb een WCF service geschreven in C#.NET, met daarnaast een Windows client en een website. De client maakt voornamelijk gebruik van de WCF service, terwijl de website op het moment enkel op dezelfde database (als de service) draait.
Ik heb nu een scenario waarbij ik communicatie vanuit de server naar een client wil hebben, maar ik zou niet weten hoe ik dat het best voor elkaar kan krijgen. In principe is communicatie met een WCF service altijd van client naar server. Ik heb ook gevonden dat je via dual binding / callbacks ook weer een berichtje terug kan sturen naar de client.
Echter wat ik nodig heb is ENKEL een bericht van server naar client.
Ik wil namelijk dat een knop op de website een actie in de client teweeg brengt. Oftewel:
1. Gebruiker klikt op knop website.
2. Website stuurt berichtje naar service dat gebruiker 1234 op de knop heeft geklikt.
3. Service stuurt berichtje naar client 1234 dat op de knop is geklikt.
4. De client van gebruiker 1234 doet iets.
Klopt het dat stap 3 in principe "onmogelijk" is? Hoe kan ik aan de kant van de service weten welke client ik moet aanroepen (en hoe roep ik die uberhaupt aan)? Aangezien het bericht vanuit de website komt kan dit volgens mij niet via dual binding / callbacks (toch?).
De enige optie die ik zie is dat de client continu zit te pollen naar de service "is er al op de knop gedrukt?". Dat gaat natuurlijk werken maar als het een beetje soepel moet werken (lees: de actie op de client komt toch wel binnen een paar seconden) dan moet de client dus heel vaak zitten pollen. Aangezien er veel clients tegelijk online kunnen zijn, waarvan er misschien 1 per uur op de knop klikt, lijkt me dit totaal niet efficient.
Is er geen andere optie?
Ik heb nu een scenario waarbij ik communicatie vanuit de server naar een client wil hebben, maar ik zou niet weten hoe ik dat het best voor elkaar kan krijgen. In principe is communicatie met een WCF service altijd van client naar server. Ik heb ook gevonden dat je via dual binding / callbacks ook weer een berichtje terug kan sturen naar de client.
Echter wat ik nodig heb is ENKEL een bericht van server naar client.
Ik wil namelijk dat een knop op de website een actie in de client teweeg brengt. Oftewel:
1. Gebruiker klikt op knop website.
2. Website stuurt berichtje naar service dat gebruiker 1234 op de knop heeft geklikt.
3. Service stuurt berichtje naar client 1234 dat op de knop is geklikt.
4. De client van gebruiker 1234 doet iets.
Klopt het dat stap 3 in principe "onmogelijk" is? Hoe kan ik aan de kant van de service weten welke client ik moet aanroepen (en hoe roep ik die uberhaupt aan)? Aangezien het bericht vanuit de website komt kan dit volgens mij niet via dual binding / callbacks (toch?).
De enige optie die ik zie is dat de client continu zit te pollen naar de service "is er al op de knop gedrukt?". Dat gaat natuurlijk werken maar als het een beetje soepel moet werken (lees: de actie op de client komt toch wel binnen een paar seconden) dan moet de client dus heel vaak zitten pollen. Aangezien er veel clients tegelijk online kunnen zijn, waarvan er misschien 1 per uur op de knop klikt, lijkt me dit totaal niet efficient.
Is er geen andere optie?