在浏览器中建立任意TCP连接

4
我的Web应用需要连接到网络上的本地设备以获取数据。
该设备具有静态IP地址,通过P03协议通信。当我使用Telnet连接时,该设备返回我的控制台中的纯文本。
我需要在浏览器中使用JavaScript完成同样的事情。当用户单击按钮时,它应该通过TCP连接到192.168.0.1: 8000并显示接收到的文本数据在页面上。
问题在于这是一个Web应用程序。是否可能在客户端完成?
(除了JavaScript之外,我也愿意接受其他建议。)

1
“咨询”不是一个标准的技术术语。你指的是什么? - Quentin
填写一个字段 - 是什么类型的字段? - Quentin
我编辑了帖子,更好地解释了自己。 - Vinicius H
1
无论 P03 协议是什么,如果它不是基于 HTTP 的,那么您在尝试从 JavaScript 处理它时可能会遇到很大的困难。另一方面,如果它是一个常规的 HTTP 请求,那么XmlHttpRequest就是你所需要的。 - Wiktor Zychla
@ Brad 好的,现在它已经被修复并重新开放了。 - deceze
显示剩余3条评论
1个回答

3

很遗憾,您不能连接到任何TCP套接字。 浏览器可以进行连接,但必须是以下协议之一:

  • HTTP(HTTP [S] 1.0 / 1.1 / 2)
  • Web Socket(实际上在HTTP上运行的另一个应用程序协议)
  • WebRTC(旨在点对点,也可以用于客户端-服务器通信,但在这里无用)

一种方法是运行某种代理。 您需要制作一个代理,该代理从浏览器接受Web Socket连接,然后将发送/接收的数据中继到此TCP服务器。 缺点是这需要一个服务器。

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


@user1283776我撤回了您的编辑...我不想在这里增加混乱,暗示Web套接字可以从HTTP上下文中断开连接。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接