SignalR + Buchung eine Nachricht an einen Hub über eine action Methode
Ich bin mit der hub - Funktion von SignalR (https://github.com/SignalR/SignalR) zu veröffentlichen, Nachrichten an alle clients mit Abonnement:
public class NewsFeedHub : Hub
public void Send(string channel, string content)
{
Clients[channel].addMessage(content);
}
Dies funktioniert sehr gut, beim aufrufen von "Send" via Javascript, aber ich möchte auch die web-Anwendung zur Veröffentlichung von Nachrichten (innerhalb einer ASP.NET MVC action-Methode). Ich habe bereits versucht die Instanziierung eines neuen Objekts ob NewsFeedHub und aufrufen der Send-Methode, aber dies führt zu einem Fehler (wie die zugrunde liegende "Verbindung" der Hub ist nicht gesetzt). Gibt es eine Möglichkeit der Verwendung des Hub, ohne eine Verbindung?
InformationsquelleAutor der Frage ollifant | 2011-09-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte beachten Sie, dass der SignalR-API hat sich geändert mehrmals seit diese Frage gestellt wurde. Es gibt eine chance, dass einige Antworten veraltet sein. Dies bedeutet nicht, dass Sie sollte nach unten gestimmt, so wie Sie waren zum Zeitpunkt des Schreibens
Gibt es eine neue aktualisierte Antwort für diese, wie gesehen, in der SignalR-Wiki
c#
vb.net
Update
Dieser code wurde aktualisiert. Folgen Sie http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server für Veränderungen.
Wenn Sie mit DI-container
Wenn Sie über einen DI-container zu verdrahten Ihre Naben, bekommen
IConnectionManager
aus Ihrem Behälter, und rufen SieGetHubContext
auf, dass connectionManager.InformationsquelleAutor der Antwort Tim B James
2018 Februar, Kurze und einfache Lösung
Zur Lösung dieses ich in der Regel design für meine Naben in der folgenden Weise:
So, es ist einfach zu nennen, von Javascript und von back-end-code. Die zwei Methoden ergeben sich bei der gleichen Veranstaltung an den client.
InformationsquelleAutor der Antwort DDan
aktualisiert: Diese Antwort ist alt, auch! SignalR ist die öffentliche API ist in ständigem Fluss, so scheint es. Tim B James hat die neue, die ordnungsgemäße Verwendung der API als im Juli 2012.
Die momentan akzeptierte Antwort von Mike ist alt und funktioniert nicht mehr mit der aktuellen version von SignalR.
Hier ist eine aktualisierte version, die zeigt, wie eine Nachricht an einen hub aus einem MVC-controller-action:
InformationsquelleAutor der Antwort Judah Himango
Folgenden von DDan die Antwort, die Sie erstellen können, eine überladene statische Methode und halten gemeinsame Logik in eine Methode ich verwende dieses Muster
Dann von Ihrem controller, den Sie verwenden können,
InformationsquelleAutor der Antwort J45