用JAVA和Websocket实现实时通信

createh52周前 (12-12)技术教程17

说到websocket你们必定不会陌生,WebSocket是HTML5一种新的协议。它实现了浏览器与服务器全双工通讯(full-duplex)。一开始的握手须要借助HTTP请求完成,当浏览器和服务器握手成功后,浏览器和服务器之间就造成了一条快速通道。二者之间就直接能够数据互相传送。有了websocket, 你们就能够摒弃以往用轮询来实现实时通信的方式了。 有了websocket后,应运而生的相关产品也不在少数,选择也成了最大的问题,在这里你可能会说“干吗用别人的,我能够本身用原始的开发一个啊” 对此我只想说你真NB,我也很想知道你是如何解决如下问题的:javascript

  1. 你是打算花1个月,2个月仍是1年还实现一个websocket通讯的?若是你说你打算花一个月,那说明两点,你的技术要上天了(这么刁的东西你能够那么快弄出来还不存在性能问题,除了我现有的膝盖,请把我下辈子的膝盖也拿走),贵公司土豪(贵公司对技术的炙热追求已经达到了行业的巅峰了,看来大家的项目不是很紧嘛,预算挺多嘛,告诉我贵公司的名字我也来钻研技术,哈哈哈)
  2. Websocket只支持ie10+, chrome, firefox, safari, opera. 不说多了,当前IE9及低版本的用户群体还有不少,你是怎么以为这些低版本浏览器的实时通信的? 上面两个问题无非就是涉及到两方面问题:开发成本和浏览器兼容性问题。站在管理者角度来看,都但愿尽量多的压缩开发成本,全部选择第三方推送服务是众多企业的一个理性选择。 选择产品时须要注意如下几点:
  3. 代码结构是否清晰易懂
  4. 消息到达率怎么样,数据到达状况是否可视
  5. 浏览器兼容性如何
  6. 产品的稳定性和安全性 好,重点来了,我不去评判其余产品的优缺点,只给出我对我最终选择的产品-GoEasy推送做一个单方面的评价。GoEasy推送知足我上面列的全部指标。
  7. 代码结构是否清晰易懂 GoEasy的代码分为订阅和推送两部分: 订阅时,只须要三句代码: a. 引入goeasy.js (文件很是小)

<script type="text/javascript" src="http://cdn.goeasy.io/goeasy.js"></script>java

b. 建立goeasy实例 var goEasy = new GoEasy({appkey: 'appkey'}); c. 订阅channel. goEasy. subscribe({ channel: 'channel1', onMessage: function(message){ alert('Meessage received:'+message.content);//接收到推送的消息 } }); 推送时,用goeasy提供的restful api来实现,api只须要三个参数便可: URL: http://goeasy.io/goeasy/publish Method: Post Parameters: appkey, channel, content 2. 消息到达率怎么样,数据到达状况是否可视 咱们项目的用户并发量目前最高在300人的样子,天天会推送30条消息的样子,每条消息的到达状况均可以在goeasy后台页面进行查看。至于到达率,咱们项目的对到达率的要求是98%, 就目前来看GoEasy应该是100%的到达率。 3. 浏览器兼容性如何 除了经常使用的浏览器chrome, firefox, safari, opera外还支持IE 6到IE11的版本,低版本IE浏览器GoEasy采用的是polling的方式。GoEasy在兼容性这方面作的很不错。 4. 产品的稳定性和安全性 稳定性的断定:项目已经持续运行了4个月了,没有出现过消息推不出或接收不到的状况。 安全性的断定:GoEasy在安全控制方面主要是经过appkey来控制,建立好app后系统会生成两个key,一个既能够用来接收又能够用来推送,另外一个只能够用来接收。因此用户能够选择性的暴露你的key. 这样轻松用JAVA实现客户端与服务器端的实时通讯了

相关文章

干货|SpringBoot集成极光推送完整实现代码(建议收藏)

工作中经常会遇到服务器向App推送消息的需求,一般企业中选择用极光推送的比较多,在集成极光时发现极光的文档并不完整,网上的文章也很多不能直接使用,这里列出我在工作中集成极光的全部代码,只需要按照如下代...

「Java基础」Springboot+Websocket的实现后端数据实时推送

这篇文章主要就是实现这个功能,只演示一个基本的案例。使用的是websocket技术。一.什么是websocketWebSocket协议是基于TCP的一种新的网络协议。它实现了客户端与服务器全双工通信,...

免费开源iPhone推送消息工具+服务端-Bark

什么是BarkBark 是一款纯推送提醒服务,主要用来给自己的 iPhone 发送自定义内容的推送,可以是文字、链接,不提供历史记录功能,阅后即焚。服务端和客户端均开源,实时性和稳定性都非常可靠,支持...

强大 WebView2 + 不用写 JavaScript 的 htmx.js 「小轻快」开发桌面程序

WebView2 是越来越香了。WebView2 不但是 Win11 自带的系统组件,Win10 也已经自动推送安装。即使是少量没有安装 WebView2 的系统 —— 使用 aardio 中的 we...

SpringBoot3新特性@RSocketExchange轻松实现消息实时推送

1. 简介本篇文章将介绍与RSocket在Spring Boot中应用的相关知识,如果你对RSocket还不了解的,可以查看下面这篇文章SpringBoot整合RSocket实时数据通信从Spring...

6款Linux常用远程连接工具,你最中意哪一款?

点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文2106字,阅读约需6分钟Hi,大家好。远程连接的实现方法有很多,概括地说有两种,一种是用系统自带的远程连接,另外一种是用...