Hi zusammen.
Ich zerbreche mir seit einigen Tagen den Kopf wie ich folgendes Problem angehen könnte.
Ich habe mir ein Windows Anwendung geschrieben, die sagen wir mal Personen verwaltet. Jeder Person ist ein bestimmter Raum zugeordnet. (nix unanständiges). Jetzt würde ich gern an einer Service Stelle auf nem Monitor den Status eines Zimmers ändern. Dieser Monitor hängt an nem Rechner (z.b. Raspberry) der über LAN verbunden ist.
Beispiel:
Servicekraft 1 steht am Empfang, trägt Namen in Anwendung ein und ordnet diesem noch ein Raum zu.
Servicekraft 2 sieht nun auf einem Monitor, das z.b. Raum 2 durch die eben aufgenommene Person belegt wurde.
Ich habe mir schon vieles dazu durchgelesen. Bin aber noch nicht auf dem richtigen Dampfer. Habe mir schon überlegt einfach ein textfile zu generieren, das auf nem server gespeichert wird. Der Rechner von Servicekraft 2 könnte sich diese dann vom Server holen. Problem, das ganze soll automatisch geschehen. Sprich diese zweite Rechner sollte nicht manuell aktualisiert werden müssen.
Hat jemand nen Idee wie ich das angehen könnte.
Vielen Dank schon einmal
Hallo masen,
im Grunde ist das Problem ähnlich wie bei Chats. Mit diesem Stichwort findest du sicherlich genügend Infos und Ansätze. Das kannst du dann auf dein Problem übertragen.
Ich würde hierzu SignalR verwenden.
Alternativ kannst du mittels WCF einen UDP-Broadcast versenden.
Wenn du darin nicht die ganze Information (welche Person hat welches Zimmer und ev. weitere Details) versenden willst, so kannst du nur einen "Auftrag zum Neuladen der Daten" versenden und die Zielrechner holen sich dann die aktuellsten Daten direkt aus der Datenbank. Es kommt hier halt darauf an wieviele Daten du versenden willst.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
also ich würde mir RabbbitMQ an deiner Stelle mal angucken, oder wie gfoidl bereits geschrieben hat auch SignalR. Damit bekommst du auf jeden fall dein Vorhaben so hin, dass du nicht auf irgendwelche Textdateien pollen musst, die irgendwo liegen.
Falls du dir RabbitMQ anguckst... Es gibt eine sehr schöne Client-Library namens EasyNetQ, die dir einiges an Arbeit abnimmt.
Hi,
vielen Dank schon mal für die Tipps. Ich denke das SignalR eine gute Möglichkeit darstellt. Werde mir die anderen Alternativen auch anschauen und berichten wie ich mein PRoblem lösen konnte.
mfg
So, erster Zwischenbericht.
Kann mir vllt jemand mal was grundsätzliches erklären?
Ich habe in meiner WindowsForm Anwendung eine Klasse myHub, eine Klasse Startup. Zudem rufe ich in meiner Programm.cs folgendes auf:
static void Main()
{
string url = "http://localhost:8080/";
using (WebApp.Start<startup>(url))
{
Console.WriteLine(string.Format("Server running at {0}", url));
}
myHub Klasse
class MyHub : Hub
{
public void Send(string name, string message)
{
Clients.All.broadcastMessage(name, message);
}
}
Startup Klasse
public class startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR(new HubConfiguration());
}
}
Dies ist bestimmt den meisten aus einschlägigen Tutorials bekannt. Was mir jetzt nicht ganz klar ist, wie nehme ich z.B. den Inhalt aus einer textbox und versende diesen an meine Clients (durch buttinclick). Komme mir schon ganz doof vor.
Als Client habe ich mal alles mögliche ausprobiert. (letztendlich soll es mal eine mit Monodevelop geschriebene C# Anwendung sein.
Danke schon mal für die Hilfe
Naja du musst eben deine Methode Send auf dem Server invoken.
Die Clients müssen entsprechend broadcastMessage abonnieren.
Dies ist jedoch super erklärt auf SignalR - Getting Started.
Für deinen SelfHosted Fall entsprechend weiterführend dann: Using SignalR in WinForms and WPF