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

8
我一直在构思一个网络应用程序的想法,类似于Turntable.fm但是针对局域网,这样同一网络上的所有计算机不会同时下载一首歌曲(占用带宽),而是流式传输音乐。基本功能是“主”PC(带扬声器的那台)播放本地歌曲或通过局域网接收歌曲并播放。
我的问题是,是否有一种方式让托管在线的HTML5页面使用JS来检测LAN用户并直接彼此通信,而无需任何中央服务器?为了明确起见,这里举个例子:
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
  • 除了web应用的初始加载外不依赖于互联网
  • 可以检测局域网用户,建立局域网连接
2个回答

2
请阅读这篇博客,以及W3C发布的标题为Web实时通信的另一篇文章。
这个功能仍在W3C的过程中,该功能的候选版本将在2012年第四季度发布。所以它不会很快可用。
目前,作为替代方案,我的建议是:
  1. 使用HTML5的离线功能作为替代方案,这在Google的演示文稿中有描述:让它脱机工作

  2. 使用Adobe Cirrus Beta。它可以嵌入到您的HTML中,支持点对点对话和点对点内容传递。

    • 传统的

    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

首先,如果互联网连接丢失,几乎所有浏览器都会报错。HTML5可以解决这个问题。

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

还有很多其他的应用程序也可以做同样的事情:看看XBMC

顺便说一下:你也可以创建一个不依赖于中央服务器的adhoc网络。但这仍然是正在研究的内容(即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/


其中一部分是为了学习经验。作为一个逐渐深入学习JS的网页设计师(HTML/CSS),我认为这将是一个有趣的项目。此外,我更加熟悉使用上述语言来样式化页面,而不是在其他语言中构建UI(尽管我一直在寻找)。另外,由于办公室采用Mac/PC跨平台,所以Web应用程序似乎是一个完美的选择(而且不需要额外的安装)。但现在看来这个计划行不通了。 - Brian
如果我没记错的话,qt4支持webkit,这意味着您可以使用HTML/CSS技能创建令人惊叹的桌面应用程序。而且,qt4还具有跨Linux/Mac/PC平台的支持。 - rik.vanmechelen
这正是我作为备选计划下载的!xD CSS应该有助于应用程序的样式设计,QML是一种类似于JavaScript的替代C++编码的选择,而且它完全跨平台。看来我必须要拓展一下我的学习经验了... - Brian

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