Web套接字问题

Tow*_*wer 3 javascript browser html5 websocket

我有几个关于Web套接字的问题.

最新的Firefox 4.0 nightlies支持Web套接字.Webkit也是如此(Chrome 4 + Safari 4/5).根据Microsoft(在稳定版本之前),Internet Explorer 9应该在某些时候具有Web套接字.

无论如何,我的问题是:

  • 我正在构建一个JavaScript管理界面来管理网站.我应该使用网络套接字的客户端服务器通信,而不是XMLHttpRequest的,如果我告诉你,我并不需要关心浏览器的兼容性?

  • 与XMLHttpRequest的常见情况相比,Web套接字是否会导致更快的保存,删除和更新调用?请求会更加即时吗?

  • 我知道的HTML5的navigator.onlinewindow.addEventListener('offline', ...),但随着网络套接字(在连接丢失),我能够更准确和快速地检测连接的问题?我的意思是,当我关闭我的互联网连接,或用我的防火墙阻止它时,Firefox似乎仍然表明这navigator.online真的.使用Web套接字,似乎与服务器的连接将立即丢失,因此,我可以更准确地检测连接问题?

  • 我可以支持Web套接字服务器端与 PHP,因此,该代码是便携与其他Web服务器(需要安装任何Apache模块或做其他定制).我想将软件分发到几个地方,而不必要求人们将各种模块安装到他们的HTTPD左右.

我希望你能尽可能多地回答这些问题.我对答案很感兴趣.

igo*_*orw 5

我正在构建一个JavaScript管理界面来管理网站.如果我告诉您我不需要关心浏览器兼容性,我应该使用Web套接字进行客户端 - 服务器通信而不是XMLHttpRequest吗?

在我看来,你只是为了它而想要使用WebSockets.使用WebSockets的主要原因是您希望将数据从服务器推送到客户端.如果您的应用程序不需要这个,您可能不应该使用WebSockets.

与XMLHttpRequest的常见情况相比,Web套接字是否会导致更快的保存,删除和更新调用?请求会更加即时吗?

由于没有标题,您可以在两端(客户端和服务器)节省一些时间.但收益可能很小.

使用Web套接字(在连接丢失时),我能够更准确,更快地检测连接问题吗?

是的,当WebSocket关闭时,事件将立即触发.替代方案是长轮询或定期XHR.或事件客户端存储.

我是否可以使用纯PHP支持服务器端的Web套接字,因此代码可以与其他Web服务器一起移植

首先,我建议你通读.WebSockets在同步方式下不能很好地工作.PHP和apache以异步方式不能很好地工作.尽管存在 一些 实现,很多都是过时的.我个人会使用其他语言,例如ruby,python,java服务器端javascript.仅仅因为语言对异步模型有更好的支持,而WebSocket实现更复杂.

WebSocket协议目前仍然是草案,它可以改变.就像几周前那样.所以你的代码可能会破坏.

我的建议是:不要仅仅为了它而使用WebSockets.如果您有一个实时的事件驱动应用程序,那么它可能是正确的选择.确保您了解WebSockets的用途以及服务器端所需的内容,以及事件驱动的应用程序.不要将它用于任何生产,它太脆弱了.