通过浏览器进行任意TCP连接

时间:2018-07-30 14:00:27

标签: javascript web-applications

我的Web应用程序需要连接到网络上的本地设备以获取数据。

设备具有静态IP地址,并通过P03协议进行通信。当我使用Telnet连接时,设备会在控制台中返回纯文本。

我需要对JavaScript浏览器执行相同的操作。用户单击按钮时,它应通过TCP连接到192.168.0.1:8000并在页面上显示收到的文本数据。

问题在于,这是一个Web应用程序。可以在客户端吗?

(除了JavaScript,我也愿意接受其他建议。)

1 个答案:

答案 0 :(得分:2)

不幸的是,您不能仅连接到任何TCP套接字。浏览器可以建立连接,但必须是以下协议之一:

  • HTTP(HTTP [S] 1.0 / 1.1 / 2)
  • Web套接字(实际上在HTTP之上运行的另一种应用程序协议)
  • WebRTC(旨在用于点对点,也可以用于客户端与服务器之间的通信,但在此无用)

执行此操作的一种方法是运行各种代理。您需要创建一个代理,该代理接受来自浏览器的Web套接字连接,然后将发送/接收的数据中继到此TCP服务器。缺点是这需要一台服务器。

另一种方法是进行浏览器扩展。另请参阅:https://stackoverflow.com/a/17567373/362536