2016-07-12 12 views
0

Ich versuche Web-Sockets zu verwenden, um zwei Windows-Dienste auf verschiedenen Computern zu ermöglichen, Daten hin und her zu übergeben. Bei fast allen Beispielen oder Informationen, die ich gefunden habe, geht es darum, Web-Sockets für die Client/Server-Side-Kommunikation zu verwenden. Ich habe Probleme herauszufinden, wie ich das einrichten soll. Ich habe erwogen, WebSocketHost als Teil von Microsoft.ServiceModel.WebSockets zu verwenden, aber ich bin mir nicht sicher, wie ich es an einen lokalen Port und nicht an eine URL binden kann..Net WebSockets in Windows-Dienste

Hat jemand irgendwelche Vorschläge

Dank

Antwort

0

Sie können dies mit Speicher erreichen Dateien kartiert.

Inter-Process Communication with Memory-Mapped Files

+0

Ich glaube nicht, dass Memory-Mapped-Dateien über das Netzwerk funktionieren, da es keinen gemeinsamen Speicher gibt. Das OP spezifiziert "auf verschiedenen Maschinen" –

0

Ich versuche, Web-Sockets zu verwenden, um zwei Windows-Dienste auf verschiedenen Maschinen zu ermöglichen, Daten hin und her zu übergeben.

Sie können Sockets auf beiden Computern mit WebSockets wie gefunden öffnen. Die Beispiele erwähnen Clients und Server, da dies die typische Verwendung ist, aber die API ist wirklich egal. Solange jede Seite einen Listener und einen Sender hat, können sie kommunizieren.

Ich möchte jedoch erwähnen, dass dies nicht so einfach ist, wie es klingt, weil beide Maschinen nicht immer verfügbar sind. Manchmal ist der eine oder der andere beschäftigt oder das Netzwerk ist blockiert oder etwas anderes passiert, oder der Zuhörer ist zu beschäftigt, um sofort zu reagieren, so dass Sie am Ende eine Art Warteschlangen auf beiden Seiten benötigen.

Wenn Sie eine prozessbasierte Operation ausführen, bei der eine Seite dem anderen "Ich will X" sagt und es eine große Operation ist, wie das Erstellen eines Dokuments, habe ich festgestellt, dass es viel robuster ist, eine Warteschlange in einer Datenbank zu erstellen Wirf die Anfrage dorthin und warte dann darauf, dass die andere Seite den Datensatz aktualisiert, um zu sagen, dass es erledigt ist.

Wenn sie kleinere, schnellere Anforderungen sind, wäre MSMQ besser geeignet, wenn sie verfügbar sind.

Aber zurück zu Ihrer ursprünglichen Frage, wenn Sie es verwenden möchten, sollte einer der Client-Server-Beispiele gut funktionieren. Der API ist es egal.