java消息推送_java实现后台服务器消息推送.pdfVIP

java消息推送_java实现后台服务器消息推送.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java消息推送_java实现后台服务器消息推送 1.什么是WebSocket WebSocket协议是基于TCP的⼀种新的⽹络协议。它实现了浏览器与服务器全双⼯(full-duplex)通信——允许服务器主动发送信息给客户 端。 2.实现原理 在实现websocket连线过程中,需要通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握⼿” 。在 WebSocket API,浏览器和服务器只需要做⼀个握⼿的动作,然后,浏览器和服务器之间就形成了⼀条快速通道。两者之间就直接可以数 据互相传送。 3.优点 在以前的消息推送机制中,⽤的都是 Ajax 轮询(polling),在特定的时间间隔由浏览器⾃动发出请求,将服务器的消息主动的拉回来,这种 ⽅式是⾮常消耗资源的,因为它本质还是http请求,⽽且显得⾮常笨拙。⽽WebSocket 在浏览器和服务器完成⼀个握⼿的动作,在建⽴连 接之后,服务器可以主动传送数据给客户端,客户端也可以随时向服务器发送数据。 4.WebSocket和Socket的区别 1.WebSocket: 1. websocket通讯的建⽴阶段是依赖于http协议的。最初的握⼿阶段是http协议,握⼿完成后就切换到websocket协议,并完全与http 协议脱离了。 2. 建⽴通讯时,也是由客户端主动发起连接请求,服务端被动监听。 3. 通讯⼀旦建⽴连接后,通讯就是“全双⼯”模式了。也就是说服务端和客户端都能在任何时间⾃由得发送数据,⾮常适合服务端要主 动推送实时数据的业务场景。 4. 交互模式不再是“请求-应答”模式,完全由开发者⾃⾏设计通讯协议。 5. 通信的数据是基于“帧(frame)”的,可以传输⽂本数据,也可以直接传输⼆进制数据,效率⾼。当然,开发者也就要考虑封包、拆 包、编号等技术细节。 2.Socket: 1. 服务端监听通讯,被动提供服务 ;客户端主动向服务端发起连接请求,建⽴起通讯。 2. 每⼀次交互都是 :客户端主动发起请求(request),服务端被动应答(response)。 3. 服务端不能主动向客户端推送数据。 4. 通信的数据是基于⽂本格式的。⼆进制数据(⽐如图⽚等)要利⽤base64等⼿段转换为⽂本后才能传输。 5.WebSocket客户端: var websocket = null; var host = document.location.host; //关闭WebSocket连接 function closeWebSocket() { websocket.close(); } //将消息显⽰在⽹页上 function setMessageInnerHTML(innerHTML) { document.getElementById(message).innerHTML += innerHTML + ; } 6.WebSocket服务端(java后台): 1.核⼼类: package com.mes.util; import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import com.google.gson.JsonObject; import net.sf.json.JSONObject;import net.sf.json.JSONObject; public class WebSocket { private static int onlineCount = 0; private static Map clients = new

文档评论(0)

137****3135 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档