This commit is contained in:
2015-06-01 09:21:36 +02:00
parent 3902ab14a7
commit 03d71034f8
9 changed files with 262 additions and 24 deletions
+32
View File
@@ -0,0 +1,32 @@
HTTP - GET / HTTP - POST (application/x-www-form-urlencoded):
==============================================================
x) [OUT] DeviceAPIMethod::GET [Args: format, pointer, query?]
x) [IN] DeviceAPIMethod::COMMAND [Args: format, pointer, msg]
x) [IN] DeviceAPIMethod::STATUS_UPDATE [Args: format, pointer, msg]
x) [EVENT] DeviceAPIMethod::REGISTER_EVENT [Args: format, pointer, event]
- Long-Polling
- WebSocket
API Method Parameter:
-- Query: method = get | command | statusupdate | event
-- Header: API-METHOD | X-API-METHOD
Common Parameters:
x) Format-Parameters:
-- Query: format = json | jsonp | xmlplist | ...
-- Query: json | jsonp [= <callback>] | xmlplist | ...
-- Query: callback = callback - in conjunction with jsonp or format=jsonp, defaults to callback
-- Header: application/[x-]javascript = jsonp | application/json = json | application/yaml = yaml | application/xml = xmlplist
x) Pointer Parameter:
-- Query: pointer = <selector in JSON Pointer format>
-- URL: .../devices/<id>/[.../]<pointer>
COMMAND/STATUS_UPDATE Parameters:
-- Query: body = <command | status-update>
EVENT Parameters:
-- Query: event = command | statusupdate | statechange | added | removed | all
@@ -0,0 +1,32 @@
define([
"dojo/_base/config",
"dojo/store/JsonRest",
"dojox/socket",
"dojo/_base/xhr"
], function(config, JsonRest, Socket, xhr){
var _store = new JsonRest({
target: config.hos.deviceRepoUrl
});
var _updateSocketOpened = false;
var _updateSocket = new Socket({
url: config.hos.deviceRepoUrl,
interval: 5000,
transport: xhr.get });
_updateSocket.on("open", function(event){
_socketOpened = true;
console.log("Socket Opened ", event.message);
});
_updateSocket.on("close", function(event){
_socketOpened = false;
console.log("Socket Closed ", event.message);
});
_updateSocket.on("error", function(event){
_socketOpened = false;
console.log("Socket Error ", event.message);
});
_updateSocket.on("message", function(event) {
var data = event.data;
console.log("Message: " /*+ data*/);
});
return _store;
});
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Tutorial: Hello Dojo!</title>
<link rel="stylesheet" href="dojo/dijit/themes/claro/claro.css" media="screen">
<!-- configure Dojo -->
<script>
var dojoConfig = {
async: true,
parseOnLoad: true,
isDebug: true,
deps: [
"dojo/parser"
],
hos: {
deviceRepoUrl: "/hos/api/devices/"
}
};
</script>
<!-- load Dojo -->
<script src="dojo/dojo/dojo.js"
data-dojo-config="async: true"></script>
</head>
<body class="claro">
<script>
require(["hos/DeviceRepo"], function(DeviceRepo){
var self = this;
var devices = DeviceRepo.query()
.then(function(data){
console.log("Data: ", data);
}, function(err){
console.log("Error: ", err);
}, function(update){
console.log("Update: ", update);
}
);
});
</script>
</body>
</html>