【问题标题】:How to setup a websocket with Javascript connected to Node-red如何使用连接到 Node-red 的 Javascript 设置 websocket
【发布时间】:2020-12-21 07:03:52
【问题描述】:

所以我已经为自己设置了一个项目,用 node-red 和 html 文档打开 RPi 上的灯。所以我已经设置了所有节点红色,它与我的 RPi 上的 LED 一起工作。我安装了 apache2 并且一直在尝试启动一个 websocket 的东西,但是我没有成功。

<!DOCTYPE HTML>

<html>
   <head>
      
      <script type = "text/javascript">
         function WebSocketTest() {
            
            if ("WebSocket" in window) {
               alert("WebSocket is supported by your Browser!");
               
               // Let us open a web socket
               var ws = new WebSocket("ws://var/www/html/index.html");
                
               ws.onopen = function() {
                  
                  // Web Socket is connected, send data using send()
                  ws.send("Message to send");
                  alert("Message is sent...");
               };
                
               ws.onmessage = function (evt) { 
                  var received_msg = evt.data;
                  alert("Message is received...");
               };
                
               ws.onclose = function() { 
                  
                  // websocket is closed.
                  alert("Connection is closed..."); 
               };
            } else {
              
               // The browser doesn't support WebSocket
               alert("WebSocket NOT supported by your Browser!");
            }
         }
      </script>
        
   </head>
   
   <body>
      <div id = "sse">
         <a href = "javascript:WebSocketTest()" onclick="WebSocketTest()">Run WebSocket</a>
      </div>
      
   </body>
</html>

这是我的代码,我一直试图让它工作很长时间,所以我得出的结论是这不起作用

【问题讨论】:

    标签: javascript websocket raspberry-pi node-red


    【解决方案1】:

    您不能为 websocket 地址使用文件路径。

    它必须是这样的:

    // Let us open a web socket
    var ws = new WebSocket("ws://node-red.local:1880/foo");
    

    Node-RED 在 node-red.local 上运行的位置(您可能可以将其交换为 IP 地址)并且您已配置 websocket-in 节点以绑定到 /foo

    【讨论】:

    • 谢谢。但我不知道它如何与它的 '/foo' 部分一起工作,我有新的 'foo' 节点,但唯一的事情是我现在不知道该怎么处理它
    • 将调试节点附加到 websocket-in 节点,看看你得到了什么。您需要一个匹配的 websocket-out 节点来回复
    • 是的,我已经这样做了,谢谢,什么都没有发生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多