Ich experimentiere mit ServiceStack Server Ereignisse Feature und möchte eine Art von "Online-Nutzer" Test-App machen. Die Idee ist, dass ich jeden Benutzer aktualisieren möchte, der sich mit einem Kanal "Benutzer" verbindet, wenn ein neuer Benutzer beitritt oder weggeht. Das Problem ist, dass ich keinen Weg finden kann, um zu erkennen, wann ein Abonnement/Benutzer die Verbindung trennt oder trennt.ServiceStack-Ereignis für Client trennen
2
A
Antwort
0
Der ServerEventsClient.OnCommand
Rückruf wird ausgelöst, wenn ein Benutzer tritt, Blätter oder Updates ihre ServerEvent Abonnement.
var sseClient = new ServerEventsClient(...);
var response = sseClient.ServiceClient.Get(new GetEventSubscribers {
Channels = sseClient.Channels
});
, die eine Liste von nicht typisierten Dictionary<string,string>
mit den Abonnenten öffentlichen Informationen werden zurück:
Sie können auch jederzeit mit einer Liste aller aktiven Teilnehmer aus einem Kanal holen.
Außerdem habe ich nur eines typisierten API für GetChannelSubscribers()
in this commit, die von v4.0.57 on MyGet jetzt verfügbar ist, die eine typisierte API bietet alle Benutzer auf die ServerEventsClient
Kanäle abonniert zu holen, zB:
var channelSubscribers = sseClient.GetChannelSubscribers();
Verwandte Themen
- 1. Socket.io Force trennen Client
- 2. Detect Client trennen mit HttpListener
- 3. trennen Client von socket.io id
- 4. Client vom serverseitigen Signalgeber trennen
- 5. Datei herunterladen und Client-Verbindung trennen?
- 6. Richtig trennen Client (Telnet) von ServerSocket
- 7. Erkennen von EJB-Datenquelle Client trennen
- 8. Alchemy Websocket Server - Wie kann ich einen Client gewaltsam trennen?
- 9. Zeichenkette für Zeichenkette trennen und durch Komma trennen in C#
- 10. Sockets - Trennen eines Clients beim Trennen der Serververbindung
- 11. Klassenstruktur für die Client-Bibliothek
- 12. libwebsocket: Wie Client zu trennen, wenn es für eine Weile keine Serverantwort (mit Timeout) gibt?
- 13. socket.io Clientverbindung trennen
- 14. Trennen von ** kwargs für verschiedene Funktionen
- 15. Zeichenfolge trennen
- 16. Socket konsequent trennen C++
- 17. Versuchen, Code in einem Client-Server-Modell zu trennen, wo der Client nicht vertrauenswürdig ist und minimale Vervielfältigung
- 18. Async verbinden und trennen mit Epoll (Linux)
- 19. Unterschriftszertifikat für Client
- 20. Client-Tools für Oracle?
- 21. Golang Client für Cassandra
- 22. FTP-Client für Android?
- 23. Keystore für WebService-Client
- 24. Stop PHP exec auf trennen
- 25. Geschäftsregeln von Geschäftsprozessen trennen
- 26. niemals einen MutationObserver trennen
- 27. Trennen Create Table Anweisungen
- 28. Inaktivität, Trennen von AppMeasurementService
- 29. Mehrere JTables trennen
- 30. Destroy socket.io Verbindung beim Trennen
Gibt es auf gleichwertige Veranstaltungen Auf der Serverseite muss ich eine Art klassischen TCP/IP-Client-Server erstellen, bei dem der Server Hintergrundinformationen ausführen und die Clients aktualisieren muss (und nicht davon abhängig sein müssen, dass jemand etwas anruft, um damit anzufangen). – Ravenheart
Auch wenn ein Client unsauber trennt (sagen Sie, die App zu töten) und sie keine Chance haben, die Registrierung des Servers aufzuheben entfernt sie nicht aus der Liste der aktiven Teilnehmer (/ Event-Abonnenten) für eine lange Zeit Zeit (in der Region von Minuten). – Ravenheart
@Ravenheart Sie können einen Callback auf 'ServerEventsFeature.OnUnsubscribe' registrieren, er wird auch ausgelöst, wenn der Client nicht sauber abmeldet, da er keine Heartbeats mehr sendet und nach' ServerEventsFeature.IdleTimeout' (Standard 30sec) wird er automatisch abgemeldet . – mythz