Ich bin neu bei SignalR und ich habe wirklich keine Ahnung. Ich muss mich mit einem Stream verbinden und einige Daten abrufen. Ich habe vom Besitzer etwas Hilfe bekommen, aber sie wissen nicht, wie man es mit JavaScript erstellt.SignalR JavaScript Client verbinden
Sie gaben mir die folgenden C# -Code:
private static HubConnection _hubConnection;
private static IHubProxy _hubProxy;
_hubConnection = new HubConnection("https://sesignalr.esmartapi.com/realtime");
_hubProxy = _hubConnection.CreateHubProxy("timeseriesHub");
_hubProxy.On<ValueResult>("broadCastValue", RecieveServerStreamMessageObject);
_hubConnection.Start().Wait();
_hubProxy.Invoke("Subscribe", assetId).Wait();
private static void RecieveServerStreamMessageObject(ValueResult message)
{
Console.WriteLine(message.ValueTime.ToShortDateString() + " " + message.ValueTime.ToLongTimeString() + " - Value: " + message.Value + " (id " + message.AssetId + ")");
}
public class ValueResult
{
public string AssetId { get; set; }
public int ValueCategory { get; set; }
public DateTime ValueTime { get; set; }
public Double Value { get; set; }
public int ValueUnit { get; set; }
}
Also habe ich versucht, die Verbindung den folgenden JavaScript-Code verwendet:
var connection = $.hubConnection('https://sesignalr.esmartapi.com/realtime');
var proxy = connection.createHubProxy('timeseriesHub');
// receives broadcast messages from a hub function, called "broadcastMessage"
proxy.on('broadcastMessage', function(message) {
console.log(message);
});
// attempt connection, and handle errors
connection.start({ jsonp: true })
.done(function(){ console.log('Now connected, connection ID=' + connection.id); })
.fail(function(){ console.log('Could not connect'); });
Und läuft dies den folgenden Fehler gab:
403 (Verboten: JSONP ist deaktiviert.)
Ich denke, ich sollte den obigen C# -Code mit JavaScript neu erstellen, aber mein C# -Wissen ist begrenzt und ich habe keine Erfahrung damit. Ich bin nicht sicher, wie man das macht, jede Hilfe wird geschätzt.
Wohin laden Sie das Skript? Wenn es nicht von dem Server ist, mit dem du dich verbinden willst, triffst du Javascript mit derselben Ursprungsrichtlinie (https://en.wikipedia.org/wiki/Same-origin_policy). In diesem Fall musst du CORS aktivieren. Sie können weitere Details hier finden: http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client – Pawel