使用UDP套接字的JavaScript应用程序-NodeJS和SocketIO

使用UDP套接字的JavaScript应用程序-NodeJS和SocketIO,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我想开发一个JavaScript应用程序,它应该能够通过UDP套接字与其他第三方应用程序通信,并通过本地浏览器窗口表示一些数据 据我所知,我应该使用NodeJS进行UDP套接字连接,并且我已经测试了它的示例UDPserver.js,它似乎工作得很好 我现在的问题是如何将从NodeJS控制台上本地运行的UDPserver接收到的数据传递到我的主应用程序,该应用程序将在浏览器上运行。我已经读到我必须使用Socket.IO来实现这个实时连接 那么,这就好比在同一台机器上同时运行一个客户端应用程序和一个

我想开发一个JavaScript应用程序,它应该能够通过UDP套接字与其他第三方应用程序通信,并通过本地浏览器窗口表示一些数据

据我所知,我应该使用NodeJS进行UDP套接字连接,并且我已经测试了它的示例UDPserver.js,它似乎工作得很好

我现在的问题是如何将从NodeJS控制台上本地运行的UDPserver接收到的数据传递到我的主应用程序,该应用程序将在浏览器上运行。我已经读到我必须使用Socket.IO来实现这个实时连接

那么,这就好比在同一台机器上同时运行一个客户端应用程序和一个服务器应用程序?socketIO将如何连接这两个部分?我应该使用WebSocket将我的应用程序与NodeJ或其他东西连接起来吗

  |  JQUERY JS  |         |  NODE.JS |                     |      C++     | 
  |             |   [?]   |          |    [UDP SOCKETS]    |              |
  |LOCAL WEB APP| <=====> |UDP SERVER| <-----------------> |3RD-PARTY APPS| 
  |   (local)   |         |  (local) |                     |   (network)  |

有人能帮我清理一下吗?这应该是相对容易的事情,但我不熟悉这一点。

因为普通浏览器不允许JavaScript直接访问套接字,所以您不能仅通过一个网页来实现这一点。使用节点中介并通过WebSocket连接浏览器是正确的


但是,您的应用程序可能最适合于,它将Chromium浏览器与node.js集成在同一个包中。这意味着您的网页代码可以直接使用节点API,如UDP套接字。

因为普通浏览器不允许JavaScript直接访问套接字,所以您不能仅使用网页来实现这一点。使用节点中介并通过WebSocket连接浏览器是正确的


但是,您的应用程序可能最适合于,它将Chromium浏览器与node.js集成在同一个包中。这意味着您的网页代码可以直接使用UDP套接字等节点API。

您的浏览器无法通过UDP进行通信。无论如何,在WebRTC之外

WebSocket不是真正的网络套接字。它们是首先通过HTTP请求建立的TCP连接上的抽象层


Socket.IO是另一个抽象层,它通过多种传输(包括WebSocket、长轮询JSON等)提供类似WebSocket的功能以及RPC。您的浏览器无法通过UDP进行通信。无论如何,在WebRTC之外

WebSocket不是真正的网络套接字。它们是首先通过HTTP请求建立的TCP连接上的抽象层


Socket.IO是另一个抽象层,它提供类似WebSocket的功能,以及RPC,通过多种传输,包括WebSocket、长轮询JSON等。

您可以直接将udp数据包缓冲区流式传输到WebSocket二进制文件,但这不会给您带来好的结果。TCP不是一种选择吗?有一些很好的桥TCPwebsocket可以使用。耶,我已经检查了其中的一些,比如websockify。它工作得很好,但不幸的是,我想连接的第三方应用程序只使用UDP套接字。您可以直接将UDP数据包缓冲区流式传输到websocket二进制文件,但这不会给您带来好的结果。TCP不是一种选择吗?有一些很好的桥TCPwebsocket可以使用。耶,我已经检查了其中的一些,比如websockify。它工作得很好,但不幸的是,我想连接到的第三方应用程序只使用UDP套接字。好了,我非常确定Node WebKit对我来说可以更简单地完成这项工作!谢谢乔希,答案是肯定的!好的,最后我非常确定NodeWebKit对我来说会做得更简单!谢谢乔希,答案是肯定的!