如何进行客户端到客户端(浏览器)的套接字连接?

5
我一直在考虑构建一个客户端程序。但我想使用浏览器来完成,辅助连接的服务器。
当我需要在客户端中拥有一个未连接的套接字(或被动套接字)等待连接时,问题就出现了。
我一直在思考使用Html5 WebSockets,但它不允许客户端拥有一个未连接的被动套接字,除非将其与TCP协议连接。
我正在学习并尝试寻找解决方法。欢迎提供任何想法:D。
2个回答

4

在Java小程序、Flash和其他浏览器插件中,您可以拥有一个被动套接字,但通常对于公共Web应用程序来说,这可能会带来问题。

首先,它将很难通过防火墙等,您需要依赖并编写代码,以实现套接字API的浏览器插件,并将其桥接到JavaScript。如果您对一些解决方案感兴趣,您可以查看以下Stack Overflow的帖子:

在浏览器之间进行点对点通信的传统方法是让您的服务器作为所有连接的网关。浏览器启动连接(使用WebSocketsXMLHttpRequest)并始终保持与服务器的活动连接,如果连接断开,则重新建立连接。由于服务器应用程序将始终找到所有已连接浏览器的开放TCP连接,因此可以轻松地路由消息以及所有客户端之间的消息。


谢谢你的回答,不过我想要的并不是使用插件。但你告诉我了我的想法,没有浏览器插件桥接是没有好的方法的。 - Angelus

0

正如Daniel所说,如果想在浏览器中实现真正的点对点(如Skype等),你会遇到很大的困难,而且没有插件是不可能实现的。即使是Skype等也要依赖于服务器作为网关来回退,当直接连接无法建立时(由于防火墙等)。

因此,你确实需要一个网关服务器,并且有许多选择。尝试在这里搜索“彗星”。我玩过的一些选项包括Orbited(http://orbited.org/)和Hookbox(http://hookbox.org/),但还有许多其他选项。


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