Gibt es ein kleines Beispiel für eine Konsole oder Winform-App, die signalR verwendet, um eine Nachricht an einen .net-Hub zu senden? Ich habe die .net-Beispiele ausprobiert und mir das Wiki angesehen, aber für mich ist die Beziehung zwischen Hub (.net) und Client (Konsolen-App) nicht sinnvoll (ich konnte kein Beispiel dafür finden). Benötigt die App nur die Adresse und den Namen des Hubs, um eine Verbindung herzustellen?
Wenn jemand einen kleinen Code bereitstellen könnte, der zeigt, wie die App eine Verbindung zu einem Hub herstellt und "Hello World" sendet oder etwas, das der .net-Hub empfängt?
PS. Ich habe ein Standard-Hub-Chat-Beispiel, das gut funktioniert. Wenn ich versuche, ihm einen Hub-Namen in Cs zuzuweisen, funktioniert es nicht mehr, dh [Hub-Name ("Test")]. Kennen Sie den Grund dafür?
Vielen Dank.
Aktueller Konsolen-App-Code.
static void Main(string[] args)
{
//Set connection
var connection = new HubConnection("http://localhost:41627/");
//Make proxy to hub based on hub name on server
var myHub = connection.CreateProxy("chat");
//Start connection
connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
{
Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Connected");
}
}).Wait();
//connection.StateChanged += connection_StateChanged;
myHub.Invoke("Send", "HELLO World ").ContinueWith(task => {
if(task.IsFaulted)
{
Console.WriteLine("There was an error calling send: {0}",task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Send Complete.");
}
});
}
Hub-Server. (anderer Projektarbeitsbereich)
public class Chat : Hub
{
public void Send(string message)
{
// Call the addMessage method on all clients
Clients.addMessage(message);
}
}
Das Info-Wiki hierfür ist http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client