Javascript 移动应用程序和pc浏览器之间的点对点通信

Javascript 移动应用程序和pc浏览器之间的点对点通信,javascript,android,ios,network-programming,browser,Javascript,Android,Ios,Network Programming,Browser,我正在进行一个项目,我需要我的移动应用程序在pc上与我的web浏览器进行对话,在pc上,两台设备都通过wifi连接。应用程序将发送数据,这些数据将由计算机浏览器接收,然后执行客户端代码。然后浏览器可能会发送一些反馈 我最初的方法是让应用程序与端点对话,而端点又与浏览器的客户端对话(javascript) 最好的方法是什么 更新 我不确定Socket.io是否是一个可行的解决方案,因为它需要托管服务器。是否可以使用套接字解决此问题?您现在编辑了您的问题,以提及P2P。这很难实现手机到浏览器(也就是

我正在进行一个项目,我需要我的移动应用程序在pc上与我的web浏览器进行对话,在pc上,两台设备都通过wifi连接。应用程序将发送数据,这些数据将由计算机浏览器接收,然后执行客户端代码。然后浏览器可能会发送一些反馈

我最初的方法是让应用程序与端点对话,而端点又与浏览器的客户端对话(
javascript

最好的方法是什么

更新


我不确定
Socket.io
是否是一个可行的解决方案,因为它需要托管服务器。是否可以使用套接字解决此问题?

您现在编辑了您的问题,以提及P2P。这很难实现手机到浏览器(也就是说,我指的是6到12个人月的工作——或者说根本不可能)。然而,在大多数情况下,您可以通过使用pubnub之类的服务立即(即“每个平台上一行代码”)解决问题。就像没有人有后端一样,一切都是通过parse.com或游戏中心完成的,就像你提到的那样,网络现在是通过pubunb(或任何竞争对手)完成的

这是一个非常常见的用例问题——每个人都只使用下面提到的PubNub或其竞争对手之一


如今,这再简单不过了,只要使用pubnub.com就行了

它是世界上最大的数据通讯服务,这是有原因的

基本上没有其他现实的方法,它很简单——几行代码


PeerJS是您想要的:


简单的回答是:目前不可能在所有浏览器上实现真正的对等(P2P)通信。因此,您可以选择以下选项:

  • 带有WebUI的应用程序+服务器(可能)
  • 应用程序+Chrome应用程序(Chrome应用程序可以启动web服务器,请参阅)
  • 带插件的App+WebApp(Flash、Silverlight或Java)

  • 我个人更喜欢解决方案1。

    您需要一台服务器。如果你从典型的防火墙角度考虑这个问题,PC或移动设备将忽略连接,除非他们自己启动连接。因此,PC和移动设备都无法启动与其他设备的连接

    我的理解是web浏览器不支持javascript中的标准套接字。您可以使用analagous websocket,但套接字和websocket不能直接兼容


    您可以在PC上设置一个简单的服务器,并让该服务器在移动设备和PC浏览器之间中继消息。移动设备和PC浏览器都连接到服务器。这基本上就是外部服务为您所做的

    这意味着两台设备都将通过互联网连接。我对网络技术没有经验。有没有其他方法可以让两个设备都可以通过套接字进行通信?基本上没有。幸运的是,这是pubnub中的一行代码。@JoeBlow这不是对pubnub的攻击;我没用过,也不太了解它。然而,OP需要一个P2P解决方案,而PubNub不是。PubNub也不是免费的,这至少让我想知道你是否与他们有关联(尽管我想,在正确性方面,这一点既不存在也不存在)。但当你说“基本上没有其他现实的方法”时,也许我只需要你澄清一下。鉴于你提出的解决方案与问题不符,那么PubNub是唯一现实的解决方案吗?没有什么澄清,我编辑了这个问题并添加了“对等”一词,但我一直在寻找P2P解决方案。如果我造成了任何混乱,很抱歉,但是
    pubnub
    看起来是一条出路,尽管我会继续寻找更好的解决方案。谢谢大家。终于开始了,谢谢!这在浏览器端看起来是一个很好的解决方案,hyper-但是你知道在iOS/Android端可以用它做什么吗?干杯文章在WebRTC等点击左右,似乎PeerJS只在有限的浏览器上工作。每当我点击示例时,它只会说“不受支持”,您可以将WebRTC与cordova()一起使用。它支持iOS和Android,但您仍然需要一个信号服务器……我明白了,所以它不适用于本机应用程序。干杯如果你能简单地说出你想做什么,那会非常有帮助。例如,这是一款赛车游戏吗?是短信系统吗?它涉及图像吗?请说明目标!欺骗老实说,听起来你想把两件截然不同的事情拼凑在一起。在大多数情况下,浏览器只是一个web浏览器。最近有越来越多的客户端计算被用于web浏览,但如果没有Java小程序之类的东西,您似乎试图让客户端看起来像pubnub是目前的解决方案,谢谢大家。对了。从本质上说,你不能从浏览器上使用socket:从2014年起,基本上有实验性的解决方案,可以在某些情况下使用少数浏览器(hypery2k概述了这些)。正如mattm所说,您需要一台服务器。关于制作服务器:这看起来几乎难以置信,在这个时代,人们会从头开始构建一个服务来实现这一点(假设你有大量的、难以置信的冗余、多主的全球范围的硬件在使用),而不仅仅是使用一个日常服务来实现这一点,这些服务在100%的用例中使用!