朋友们,html websocket是同步的吗?如何实现异步
2个回答
展开全部
Server-Sent Events
运行原理
浏览器通过HTTP向服务器发送请求,服务器端拿出数据库中的最新的信息,立即返回给客户端,客户端等待三秒后再次发出下一个请求。
实现方式
同样,浏览器中HTML两个input,JavaScript模块打开EventSource,把接受者的id传给服务端。
客户端收到相应后,onMessage事件的处理器将被调用。浏览器将每3秒发送一个请求,除非将连接关闭(Close方法)。
WebSockets
运行原理
客户端通知WebSockets服务器一个事件,告诉他接收者id,服务器将立即通知消息,当任何新的未读消息来的时候,服务器都将立即返回数据给客户端。
客户端打开一个WebSockets连接而且在/notification/updates上订阅一个事件处理。在HTML中添加一个发送向/notification/presents发送接收者id的button。这将在所有的打开连接中引起广播消息。所以每一个活跃的客户端都收到通知,客户端会检查消息中的id是否是当前登录的用户的id,如果是就更新通知数量。
总结
浏览器兼容性
Server-Sent Events支持Chrome9+、Firefox6+、Opera11+、Safari5+
Chrome14、Firefox7支持最新的hybi-10协议,Firefox6支持hybi-07.
服务器负载
Server-Sent Events工作的方式有很多,除非Server-Sent Events不必在每一次响应发出后都关闭连接。
WebSockets,服务器只需要一个进程处理所有的请求,没有循环,不必为每个客户端都分配cpu和内存。
客户端负载
Server-Sent Events采用浏览器的内置的实现方式,只花费很少的一部分资源。
WebSockets跟Server-Sent Events一样,采用浏览器的内置的实现方式,只花费很少的一部分资源。
时间线
Server-Sent Events默认延时3秒,但是可以调整。
WebSockets真正的实时
实现方式复杂度
Server-Sent Events甚至比Long-polling更简单
需要一个WebSockets服务器处理事件,并开放一个端口
运行原理
浏览器通过HTTP向服务器发送请求,服务器端拿出数据库中的最新的信息,立即返回给客户端,客户端等待三秒后再次发出下一个请求。
实现方式
同样,浏览器中HTML两个input,JavaScript模块打开EventSource,把接受者的id传给服务端。
客户端收到相应后,onMessage事件的处理器将被调用。浏览器将每3秒发送一个请求,除非将连接关闭(Close方法)。
WebSockets
运行原理
客户端通知WebSockets服务器一个事件,告诉他接收者id,服务器将立即通知消息,当任何新的未读消息来的时候,服务器都将立即返回数据给客户端。
客户端打开一个WebSockets连接而且在/notification/updates上订阅一个事件处理。在HTML中添加一个发送向/notification/presents发送接收者id的button。这将在所有的打开连接中引起广播消息。所以每一个活跃的客户端都收到通知,客户端会检查消息中的id是否是当前登录的用户的id,如果是就更新通知数量。
总结
浏览器兼容性
Server-Sent Events支持Chrome9+、Firefox6+、Opera11+、Safari5+
Chrome14、Firefox7支持最新的hybi-10协议,Firefox6支持hybi-07.
服务器负载
Server-Sent Events工作的方式有很多,除非Server-Sent Events不必在每一次响应发出后都关闭连接。
WebSockets,服务器只需要一个进程处理所有的请求,没有循环,不必为每个客户端都分配cpu和内存。
客户端负载
Server-Sent Events采用浏览器的内置的实现方式,只花费很少的一部分资源。
WebSockets跟Server-Sent Events一样,采用浏览器的内置的实现方式,只花费很少的一部分资源。
时间线
Server-Sent Events默认延时3秒,但是可以调整。
WebSockets真正的实时
实现方式复杂度
Server-Sent Events甚至比Long-polling更简单
需要一个WebSockets服务器处理事件,并开放一个端口
2016-04-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
g因为http有同步和异步发送,我在刷新浏览器的时候,是可以捕获到浏览器刷新时间,向服务器发送请求,这时候是发送同步请求,如果服务端不响应,我不关闭浏览器,就是保证这个请求不中断,但是用websokcet发送不出去,因为浏览器刷新,请求中断了,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询