【问题标题】:JavaScript listen on a portJavaScript 监听端口
【发布时间】:2017-11-19 19:46:09
【问题描述】:

我正在使用dump1090 来收听和解码 ADS-B 信号。它通过端口 8080 将数据输出到 Web 前端,一切正常。该代码还通过端口 30003 和 30002 生成输出,这是原始消息。我正在尝试“收听”这些消息,但是我收到了套接字错误。我在js中使用的代码是:

function dumpSocket() {
    console.log("attempting to dump socket")
    let ws = new WebSocket ("ws://192.168.0.29:30003")
    ws.onmessage = function (data) {
        console.log(data)
    }
    window.onbeforeunload = function(event) {
        socket.close();
    }
}

我得到的错误是:

VM3157:164 WebSocket 连接到“ws://192.168.0.29:30003/”失败: WebSocket 握手期间出错:net::ERR_INVALID_HTTP_RESPONSE

如果我 netcat 到 IP 和端口,我得到的消息没有问题。我哪里错了?

【问题讨论】:

    标签: javascript websocket


    【解决方案1】:

    很遗憾,您不能使用 websockets 来监听原始 tcp 或 udp 套接字,在服务器端您还需要创建一个 websocket 接口。

    不过,在 Chrome 扩展程序中,您可以使用 chrome.sockets.tcp,请参阅:

    https://developer.chrome.com/apps/sockets_tcp

    mozilla 也有一些有限的支持:

    https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/API/TPC_Socket_API

    另一个解决方案是创建一个 nodeJS 服务器,它将监听原始 tcp 套接字并将其转换为 websocket。

    你也可以试试 websockify: https://github.com/novnc/websockify

    【讨论】:

    • 好的,谢谢您的信息。我认为 node.js 中可能有包可以在这种情况下提供帮助。干杯。
    猜你喜欢
    • 2016-05-05
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2012-03-18
    • 2014-07-02
    • 2011-09-23
    相关资源
    最近更新 更多