1
是否可以從瀏覽器創建websockets訂閱?我們使用分支功能/ 1181_websockets分支,git版本5ca6770aa401b52a31293fdcef4a9743fb1de2c4。通過Orion中的websockets訂閱
我們做了一個PoC試圖通過websockets訂閱瀏覽器。我們嘗試將瀏覽器中運行的一些JS代碼連接到訂閱網址。連接已建立,但通過套接字從客戶端發送數據時,orion崩潰。這個用例是否支持?你有一個工作的例子嗎? 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>
作爲替代,我們嘗試使用REST API創建訂閱,要求Orion通過websockets通知我們。我們發佈了以下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
}
訂閱進程失敗和獵戶座返回422個狀態碼與消息:
{
"error": "BadRequest",
"description": "Invalid URL"
}
難道我們做出的訂閱請求的任何錯誤?這個用例是否支持?
謝謝!
功能/ 1181_websockets是一個實驗分支,在某種意義上說,是一個「動態圖片」。爲了知道你有哪個確切的CB版本(來自'contextBroker --version'輸出),你可以編輯你的問題帖子來包含這些信息嗎?重要的部分是githash。謝謝! – fgalan
感謝您的回覆。我用這些信息編輯了我的問題。 –