WebSocket适用于HTML文件,但在托管网页上失败

时间:2019-03-08 06:35:14

标签: javascript html5 websocket webos lg

我正尝试使用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服务器,但是它们不起作用。

  • Apache
  • IIS
  • QNAP的Web服务器(NAS服务器)

有人知道原因吗?

0 个答案:

没有答案