我正尝试使用Websocket通过JSTVRemote JavaScript库对LG Smart TV(WebOS 4.0)进行远程控制。
这意味着LG SmartTV是一个websocket服务器,而我的浏览器是一个websocket客户端。浏览器发送命令来控制电视,电视完成工作(例如降低音量),然后将响应发送回客户端。
该库使用WebSocket与电视通信:
ws = new WebSocket( "wss://192.168.xxx.xxx:3000" ) ;
ws.onopen = function() {
ws.onmessage = function( event ) {
console.log( event ) ;
alert('command successed!')
}
ws.onclose = function() {
logUpdate( "Connection closed." ) ;
}
}
ws.send(someCommand);
当我在本地HTML文件中使用它时(在浏览器中使用file:// ...打开它),它可以正常工作。 onmessage
事件将触发并返回电视的响应。另外,电视还可以执行命令。
* Chrome,IE和Safari都可以
但是,当我在托管网页中使用它时(使用http:// ...或https://..打开同一HTML文件。),onmessage
事件不会归档,并且会报告“ WebSocket已处于CLOSING或CLOSED状态”错误。当然,电视不能完成命令工作。
*建立连接似乎成功,因为新的WebSocket(), ws.onopen()和 ws.send()好吧。
我已尝试关注Web服务器,但是它们不起作用。
有人知道原因吗?