Ist es möglich, ein WebSockets-Abonnement über einen Browser zu erstellen? Wir verwenden die Verzweigungsfunktion/1181_websockets-Verzweigung, Git-Version 5ca6770aa401b52a31293fdcef4a9743fb1de2c4.Abonnements über Websockets in Orion
Wir haben einen PoC gemacht, der versucht, einen Browser über Websockets zu abonnieren. Wir haben versucht, einen JS-Code, der im Browser ausgeführt wird, mit der Subskriptions-URL zu verbinden. Die Verbindung wurde hergestellt, aber orion stürzte ab, wenn Daten vom Client über den Socket gesendet wurden. Wird dieser Anwendungsfall unterstützt? Hast du ein funktionierendes Beispiel dafür? Der Code JS:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<button id="send" type="button" name="button">send</button>
<script type="text/javascript">
var payload = `{"description": "One subscription to rule them all",
"subject": {
"entities": [{
"idPattern": ".*",
"type": "Room"
}],
"condition": {
"attrs": ["temperature"],
"expression": {
"q": "temperature>40"
}
}
},
"expires": "2016-04-05T14:00:00.00Z",
"throttling": 5
}`;
var ws = new WebSocket('ws://orion-url:9010/v2/subscriptions', 'ngsiv2-json');
var button = document.getElementById('send');
button.addEventListener('click', function(event) {
ws.send(payload)
});
</script>
</body>
</html>
Als Alternative haben wir versucht, ein Abonnement mit dem REST-API zu erstellen, Orion fragen uns über WebSockets zu benachrichtigen. Wir verzeichnen die folgende JSON:
{
"description": "One subscription to rule them all",
"subject": {
"entities": [
{
"idPattern": ".*",
"type": "Room"
}
],
"condition": {
"attributes": [
"temperature"
],
"expression": {
"q": "temperature>40"
}
}
},
"notification": {
"callback": "ws://my-websocket-listener:8081"
},
"expires": "2016-04-05T14:00:00.00Z",
"throttling": 5
}
Das Abonnement fehlschlägt und Orion liefert einen 422-Statuscode mit der Meldung:
{
"error": "BadRequest",
"description": "Invalid URL"
}
Haben wir einen Fehler in dem Zeichnungsantrag? Wird dieser Anwendungsfall unterstützt?
Danke!
Funktion/1181_websockets Arbeit ist ein experimenteller Zweig und in gewissem Sinne ein "bewegendes Bild". Um zu wissen, welche genaue CB-Version Sie haben (aus der 'contextBroker --version'-Ausgabe), könnten Sie Ihren Frage-Post bearbeiten, um diese Informationen aufzunehmen? Der wichtige Teil ist der Githasch. Vielen Dank! – fgalan
Danke für Ihre Antwort. Ich habe meine Frage mit diesen Informationen bearbeitet. –