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

时间:2014-03-27 20:14:36

标签: javascript node.js sockets socket.io

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

据我所知,我应该使用NodeJS进行UDP套接字连接,我已经测试了它的示例UDPserver.js示例,该示例似乎运行良好。

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

那么,就像在同一台机器上同时运行客户端应用程序和服务器应用程序一样? socketIO究竟如何连接这两个部分?我应该使用WebSockets通过NodeJS桥接我的应用程序吗?

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

有人可以为我清理一下吗?它应该是相对容易的东西,但我是新手......

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

由于普通浏览器不允许JavaScript直接访问套接字,因此仅使用网页无法实现此目的。通过使用节点中介并通过websockets连接浏览器,您走在正确的轨道上。

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