signalr-backplane

___ tag123sql ___ Structured Query Language (SQL) ist eine Sprache für die Abfrage von Datenbanken. Fragen sollten Codebeispiele, Tabellenstruktur, Beispieldaten und ein Tag für die verwendete DBMS-Implementierung (z. B. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 usw.) enthalten. Wenn sich Ihre Frage nur auf ein bestimmtes DBMS bezieht (verwendet bestimmte Erweiterungen / Funktionen), verwenden Sie stattdessen das Tag des DBMS. Antworten auf mit SQL gekennzeichnete Fragen sollten den ISO / IEC-Standard SQL verwenden. ___ tag123signal ___ ASP.NET SignalR ist eine Bibliothek für ASP.NET-Entwickler, die es unglaublich einfach macht, Ihren Anwendungen Echtzeit-Webfunktionen hinzuzufügen. Was ist die "Echtzeit-Web" -Funktionalität? Es ist die Möglichkeit, dass Ihr serverseitiger Code Inhalte in Echtzeit an die verbundenen Clients sendet. ___ tag123servicebroker___ SQL Server Service Broker ist ein Messaging-Framework, das in SQL Server integriert ist. Es enthält eine Infrastruktur für die asynchrone Programmierung, die für Anwendungen innerhalb einer einzelnen Datenbank oder einer einzelnen Instanz sowie für verteilte Anwendungen verwendet werden kann. ___ tag123signallrbackplane ___ In der Elektronik ist eine Backplane eine Gruppe paralleler Anschlüsse. Analog dazu verbindet eine SignalR Backplane mehrere Server. ___ qstnhdr ___ Ist es möglich SignalR-Nachrichten direkt zur SQL-Backplane hinzuzufügen? ___ qstntxt ___

Ich würde gerne wissen, ob ich SignalR Nachrichten direkt an die SignalR SQL Backplane (von SQL) hinzufügen kann, also muss ich keinen SignalR Client dafür verwenden.

Meine Situation ist, dass ich eine gespeicherte Prozedur für eine SQL Service Broker-Warteschlange aktiviert habe, und wenn sie ausgelöst wird, möchte ich eine Nachricht an SignalR-Clients senden. Derzeit muss ich die Nachricht von SQL Service Broker in einem separaten Prozess erhalten und dann sofort die Nachricht mit einem SignalR-Hub erneut senden.

Ich möchte, dass meine aktivierte gespeicherte Prozedur die Nachricht im Grunde direkt auf die SignalR SQL Backplane überträgt.

    
___ answer40559927 ___

Ja und nein. Ich habe ein kleines Experiment auf meinem localhost eingerichtet, um festzustellen, ob es möglich ist - und es ist, wenn es richtig formatiert ist.

Nun ein Wort zum Schema %code% . Es erzeugt drei Tabellen:

%Vor%

Richtig, also habe ich die letzte Spalte dupliziert, außer dass ich %code% (für den neuen Datensatz und in %code% erhöht und in %code% als Wert für %code% eingegeben habe. Unmittelbar nach dem Hinzufügen des Datensatzes a Es wurde eine neue Nachricht in den verbundenen Client eingegeben Beachten Sie, dass %code% keine Identitätsspalte ist, daher müssen Sie sie manuell erhöhen, und Sie müssen diesen erhöhten Wert in den einzigen Datensatz in %code% kopieren, anderenfalls können Ihre Signalclients dies nicht tun Verbindung wegen Signalr SQL-Fehlern.

Nun füllt der Trick die Spalte [Payload] richtig aus. Ein kurzer Blick auf die Tabelle zeigt, dass es wahrscheinlich binär serialisiert ist. Ich bin kein Experte für SQL, aber ich bin mir ziemlich sicher, dass eine binäre Serialisierung in Schwierigkeiten steckt. Wenn ich recht habe, ist dies der Quellcode für die binäre Serialisierung, die sich in %code% befindet:

%Vor%

Mit %code% :

%Vor%

Also ist es nahezu unmöglich, das in einer gespeicherten Prozedur mit reinem SQL neu zu implementieren. Wenn Sie es auf dem SQL Server tun müssen, empfehle ich die SQL CLR-Funktionen . Eine Sache zu erwähnen, obwohl - Es ist einfach genug, eine Klassenbibliothek zu verwenden, aber wenn Sie den Aufwand auf lange Sicht reduzieren möchten, würde ich vorschlagen, ein SQL Server-Projekt in Visual Studio zu erstellen. Dies ermöglicht Ihnen die automatische Bereitstellung von CLR-Funktionen mit wesentlich mehr Leichtigkeit als das manuelle Kopieren der neuesten Klassenbibliothek auf den SQL Server. Auf dieser Seite erfahren Sie mehr darüber, wie Sie das tun können.

    
___
1
Antwort

Ist es möglich SignalR-Nachrichten direkt zur SQL-Backplane hinzuzufügen?

Ich würde gerne wissen, ob ich SignalR Nachrichten direkt an die SignalR SQL Backplane (von SQL) hinzufügen kann, also muss ich keinen SignalR Client dafür verwenden. Meine Situation ist, dass ich eine gespeicherte Prozedur für eine SQL Servi...
29.05.2014, 14:14