如何支持服务器推送浏览器的方法和websockets的角色?

时间:2012-11-19 09:11:50

标签: node.js java-ee webserver websocket server-push

我有一个用例,我计划从浏览器到服务器进行轮询以检查给定客户的任何更新。然后我想 探索推送方法,其中webserver(在我的情况下是tomcat)可以在webserver上运行servlet时自动执行 从thirdparty获取任何更新。第一个问题让我想到javaclass将如何知道它必须发送哪个浏览器客户端 更新。然后我在http://www.gianlucaguarini.com/blog/nodejs-and-a-simple-push-notification-server/看到了链接。 这是一个惊人的链接,演示了如何支持推送方法。但我提出了一些基本问题 采用这种方法。这些是: -

1)浏览器内部是否仅使用websockets与webserver进行通信,还是仅使用TCP进行通信? 根据我的理解,浏览器仅使用TCP协议,虽然它受到一些broser支持,如chrome,mozilla

2)所有浏览器特别支持IE7,IE8的websocket(由示例中的io.connect('url')提供)吗? 根据我的理解

3)为了支持浏览器的推送方法,websockets是唯一的方法吗? 根据我的理解,websockets主要用于将数据从webserver推送到浏览器(只有支持websockets的那些) 对于这个第一个浏览器需要使websocket连接到webserver.Now服务器将使用创建的websocket发出任何 数据到浏览器。对吗?

4)当websocket自动断开连接时是否有可能,例如请求超时或等待很长时间的响应?

5)我们是否需要明确断开套接字,否则当浏览器关闭时它会自动关闭?

如果回答是逐点的,那将非常有用。

1 个答案:

答案 0 :(得分:0)

  1. WebSocket协议 TCP协议。它只是以HTTP开头,然后可以升级到TCP。

  2. Internel Explorer应支持版本10中的WebSockets。其他主流浏览器(Chrome,FireFox,Safari,Opera)完全支持它。

  3. 还有许多其他可能性。简单轮询,长轮询(只有当你有新数据时才能做出一个ajax请求和服务器响应),隐藏无限iframe,使用闪存等等。

  4. 一旦使用端口的应用程序(在这种情况下是浏览器)被终止,那么所有连接也会被终止。