我有一个vb.net应用程序,它打开一个套接字并侦听它。
我需要通过这个套接字与运行在浏览器上的javascript应用程序通信,也就是说,我需要在这个套接字上发送一些数据,这样监听这个套接字的应用程序就可以接收这些数据,使用远程调用做一些事情,获取更多的数据,然后将其放回套接字,我的javascript需要读取这些数据,并在浏览器中打印这些数据。
我试过,socket.io,websockify,但没有一个被证明是有用的。
因此,问题是,我正在尝试的是可能的吗?有没有一种方法可以让运行在浏览器中的javascript连接到tcp套接字,发送一些数据,监听套接字上的更多数据响应,并将其打印到浏览器上。
如果这是可能的话,谁能给我指出正确的方向,以帮助我确立目标。
6条答案
按热度按时间qgelzfjb1#
至于你的问题,目前你将不得不依赖于XHR或websockets。
目前还没有流行的浏览器为javascript实现任何这样的raw sockets API,允许你创建和访问raw sockets,但是一个在JavaScript中实现raw sockets api的草案正在起草中。
http://www.w3.org/TR/raw-sockets/
https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket
Chrome现在在其“实验性”API中支持原始TCP和UDP套接字。这些功能仅适用于Chrome应用,虽然有文档记录,但目前是隐藏的。话虽如此,一些开发者已经在使用它创建有趣的项目,如this IRC client。
要访问这个API,你需要在扩展的清单中启用experimental标志。使用套接字非常简单,例如:
kognpnkq2#
这可以通过导航器界面实现,如下所示:
更多详细信息请参见w3.orgtcp-udp-sockets文档。
http://raw-sockets.sysapps.org/#interface-tcpsocket
https://www.w3.org/TR/tcp-udp-sockets/
另一种方法是使用Chrome Sockets
正在创建连接
正在发送数据
正在接收数据
您还可以尝试使用
HTML5 Web Sockets
(尽管这不是直接TCP通信):http://www.html5rocks.com/en/tutorials/websockets/basics/
您的服务器还必须侦听WebSocket服务器,例如pywebsocket,或者您也可以编写自己的服务器,如Mozilla所述
shyt4zoc3#
ws2s项目旨在将socket引入浏览器端js,它是一个将websocket转换为socket的WebSocket服务器。
ws2s原理图
代码示例:
gojuced74#
看jsocket,自己没用过,上次更新已经3年多了(截止2014年6月26日)。
从documentation:
ui7jx7zq5#
为了实现您想要的结果,您必须编写两个应用程序(例如,用Java或Python):
1.位于客户端计算机上的桥应用程序,可以处理TCP/IP套接字和WebSockets。它将与相关的TCP/IP套接字交互。
1.可以与WebSockets通信的服务器端应用程序(如JSP/Servlet WAR)。它至少包含一个可由浏览器访问的HTML页面(如果需要,包含服务器端处理代码)。
应该是这样的
1.桥客户端向服务器发送一些ID信息,服务器存储该ID信息以便识别桥。
1.浏览器可查看的页面使用JS连接到WS服务器。
1.重复步骤3,但对于基于JS的页面
1.基于JS的页面向服务器发送命令,包括它必须转到哪个桥。
1.服务器将命令转发给网桥。
1.网桥打开一个TCP/IP套接字并与之交互(发送消息,获得响应)。
1.重复此步骤,直到任一客户端断开连接/卸载
nkhmeac66#
您真正需要的解决方案是Web套接字,但是chromium项目已经开发了一些新技术,它们是直接TCP连接TCP chromium