HTML5 + JS足以进行局域网通信?

时间:2011-12-21 03:04:12

标签: javascript html5 websocket multicast lan

我已经集思广益了一个webapp的想法,比如Turntable.fm,但是对于局域网来说,同样地,SAME网络上的所有计算机都不能同时下载一首歌(杀死带宽)而是流传音乐。基本功能将是" master" PC(带扬声器的人)播放本地歌曲或通过LAN接收歌曲然后播放它们。

我的问题是,HTML5页面(在线托管)是否有办法使用JS检测局域网用户并直接相互通信而无需任何中央服务器?举例说明:

Office LAN has 2 users, Bob and Bill
Bob enters lanmusic.com
Bill enters lanmusic.com
Internet dies, LAN is fine.
Bob can still detect via the page that local user Bill is on the page too
Bill sends a song to Bob through the page directly
Bob plays song with page's javascript music player

所以关键点:

  • 仅限Javascript / HTML5
  • 除了初次加载网络应用程序外,不依赖互联网
  • 可以检测局域网用户,进行局域网连接

2 个答案:

答案 0 :(得分:2)

请阅读此blog以及W3C发布的另一篇文章,标题为Web Real-Time Communications

W3C仍在使用此功能,此功能的候选版本将于2012年第四季度发布。因此很快就无法使用。

目前,作为替代方案,我的建议是

  1. 使用HTML5的离线功能作为替代,其中 由Google Make it work offline在此演示文稿中进行了描述。

  2. 使用Adobe Cirrus Beta。它可以嵌入HTML中,支持P2P会话和P2P内容传送。

    • 传统

    Cirrus1 http://labs.adobe.com/technologies/stratus/images/evolution1.jpg

    • Cirrus 1

    Cirrus1 http://labs.adobe.com/technologies/stratus/images/evolution2.jpg

    • Cirrus 2

    Cirrus2 http://labs.adobe.com/technologies/stratus/images/evolution3.jpg

答案 1 :(得分:1)

首先,如果互联网连接丢失,每个浏览器都会出错。如果出现此问题,HTML5可以处理。

但是你只能使用客户端站点js,这将不允许你做你想做的事情。 为什么不制作普通的桌面应用程序? 我和一些朋友正在制作一个基于CLI的应用程序,将音乐排到中央服务器,该服务器有扬声器并播放音乐。我们的github:https://github.com/Infogroep/mpgc

还有很多其他的aps也是如此:查看XBMC

仅供参考:您可以做的是创建一个不依赖于中央服务器的ad hoc网络。但这仍然是一个正在研究的东西(即http://soft.vub.ac.be/amop/

w3c有一篇关于HTML5家庭网络实施的有趣论文 http://www.w3.org/2011/09/webtv/papers/W3C_HNTF_Position_Paper_Sept_2011.pdf

并查看html5 websocket api http://dev.w3.org/html5/websockets/