-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathwebsocket.js
90 lines (77 loc) · 2.07 KB
/
websocket.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// need to change to websocket server's address
var wsUri = "ws://<websocket server's IP address>:<websocket server's port number>";
var output;
function init()
{
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket()
{
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}
function onOpen(evt)
{
writeToScreen("CONNECTED");
doSend();
}
function onClose(evt)
{
writeToScreen("DISCONNECTED");
}
function onMessage(evt)
{
var message = JSON.parse(evt.data);
writeToScreen('<span style="color: blue;">RESPONSE: ' + message.device_id + ' : ' + message.result +'</span>');
showNotification(message);
websocket.close();
}
function onError(evt)
{
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend()
{
var message = {
"msg_type" : "command",
"device_id" : "IFX001",
"command" : "ON"
};
writeToScreen("SENT: " + JSON.stringify(message));
websocket.send(JSON.stringify(message));
}
function writeToScreen(message)
{
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
function showNotification(message)
{
if (message.device_id == 'IFX001')
{
var device = "Light";
}
if (message.result == 'TRUE')
{
var status = "ON";
}
var lunaReq= webOS.service.request("luna://com.webos.notification",
{
method:"createToast",
parameters:{
"sourceId" : "com.sample.websocket",
"message" : device + ' is turned ' + status
},
onSuccess: function (args) {
},
onFailure: function (args) {
}
});
}
window.addEventListener("load", init, false);