范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

用过websocket吗?

  用过websocket吗?
  用过的
  说说在什么场景下用的?
  曾经有这么一个场景...,前端最开始是用轮询做的,我去了之后给改成了websocket,我是这么实现的...
  相信很多前后端的小伙伴都被问过websocket,今天就来盘一盘websocket。什么是websocket
  概念的东西我就不讲了,一言概之,websocket就是支持服务端向客户端发消息的技术。Springboot怎么集成
  这是本文的重点。
  pom引依赖                              org.springframework.boot             spring-boot-starter-websocket         
  编写ServerEndPoint,前端连接点@Slf4j @ServerEndpoint(value = "/test/{sid}") @Component public class WebsocketEndPoint {      /**      * 记录当前在线连接数      */     private static final AtomicInteger onlineCount = new AtomicInteger(0);       /**      * 连接建立成功调用的方法      */     @OnOpen     public void onOpen(Session session, @PathParam("sid") String sid) {         session.setMaxIdleTimeout(1000 * 10);         onlineCount.incrementAndGet(); // 在线数加1         WebsocketSessionHelper.add(sid, session);     }      /**      * 连接关闭调用的方法      */     @OnClose     public void onClose(Session session, @PathParam("sid") String sid) {         WebsocketSessionHelper.del(sid);         onlineCount.decrementAndGet(); // 在线数减1     }      /**      * 收到客户端消息后调用的方法      *      * @param message 客户端发送过来的消息      */     @OnMessage     public void onMessage(String message, Session session) throws IOException {         session.getBasicRemote().sendText(message.concat("666"));// 回复消息     }      @OnError     public void onError(Session session, Throwable e) {         log.error("发生错误", e);     }   }
  注意到我使用了一个Helper类,这个类用来存储和反查Session。这样在其他业务方法里面,可以灵活的根据sid找到Session,操作Session。@Slf4j public class WebsocketSessionHelper {      private static final ConcurrentHashMap sessionMap = new ConcurrentHashMap<>();      public static void add(String sid, Session session) {         sessionMap.put(sid, session);         log.info("添加{}。当前sessionMap总量{}", sid, sessionMap.size());     }      public static void del(String sid) {         sessionMap.remove(sid);         log.info("移除{} 当前session总量{}", sid, sessionMap.size());     }      public static void sendMessage(String sid, String message) {         Session session = sessionMap.get(sid);         if (session == null) {             log.error("session=null sid={}", sid);             return;         }         if (!session.isOpen()) {             log.error("session is closed sid={}", sid);             sessionMap.remove(sid);             return;         }         try {             session.getBasicRemote().sendText(message);         } catch (Exception e) {             log.error("发消息失败 sid={}", sid);         }      }  }
  再写一个方法用来调用SessionHelper    @GetMapping("sendMessage")     public void sendMessage(@RequestParam String sid, @RequestParam String message) {         WebsocketSessionHelper.sendMessage(sid, message);     }前端JS怎么集成
  关键的代码是websocket的几个操作,onopen,onmessage,onclose等等。            test WebSocket   

  好了,代码都在上面了,效果图我就不贴了,欢迎大家跑一跑这个例子,提提问题


中国首位!厦大女教授斩获国际大奖,8年发表论文近70篇近日,国际摄影测量与遥感学会(ISPRS)正式通知,授予厦门大学信息学院人工智能系温程璐副教授OttovonGruber奖。这个奖设立于1961年,每四年一届,至今共有16位获奖者中国联通过户竟要签20年协议,费用高达14万手机靓号想必大家都听说过,有一个所谓的靓号可能会让机主感觉有面子,但殊不知靓号也可能会给你带来无尽的套路和烦恼。山东省青岛市即墨区李先生的遭遇,就充分说明了这一问题。中国联通网上营谷歌的行为,要警惕,保护国家数据,有多么重要一条爆炸的新闻,谷歌地图开放俄罗斯所有战略要地的高清卫星地图。谷歌的行为,让嘀嘀在美国上市事件再浮现,保护国家数据,是多么的重要。同时我们要谴责谷歌的行为,谷歌应该遵守企业的国际规腾讯为什么大家现在都将QQ号卖了?网友可以换套房在微信还未诞生前,QQ一直是国内最大的社交软件。在以前网络不如今天发达的时候,很多人都使用QQ在网上认识其它的朋友。并且随着QQ不断更新迭代,它所给用户带来的体验越来越多,所以说Q隔夜欧美4月20日热门中概股多数上涨,爱奇艺涨超8美股集体上涨,道指涨1。45报34911。2点,标普500指数涨1。61报4462。21点,纳指涨2。15报13619。66点科技股涨幅居前,亚马逊AMD涨超3,特斯拉谷歌英特尔涨为防摸鱼,公司要求员工下班发手机应用耗电截图据媒体报道,4月18日,武汉一位网友在网上发文称,领导要求员工下班前将手机电量消耗截图报备,从而方便领导查看员工有没有刷短视频或者玩手机。网友进一步介绍这是因为最近公司效益不好,才微信支付宝相继出手超26万个违规账号被处理用户这类行为将被严厉打击本报记者李冰4月19日下午,支付宝发布关于持续打击电信网络诈骗租售账号等违规行为的公告,而早前4月13日微信也发布了恶意营销治理公告。两家平台共处置超26万个违规账号。支付宝处置136氪首发创联科技完成数千万A轮融资,打造工业互联网领域B2B技术服务平台作者杨逍近日,36氪获悉,北京宏途创联科技有限公司(以下简称创联科技)完成梅花创投投资的数千万A轮融资。据悉,本轮融资将主要用于扩大平台运营规模和产品研发。创联科技成立于2017年涉嫌向华为中芯国际提供芯片技术,新思科技正遭美商务部调查4月14日消息,据彭博社援引知情人士爆料称,EDA大厂新思科技(Synopsys)正接受美国商务部调查,因为其涉嫌将关键技术转让给被美国制裁的中国企业。报道称,目前该调查尚未公开,为公众号刷量犯法?科技公司因不正当竞争行为赔偿腾讯百万元为微信公众号提供刷量服务,一家科技公司因不正当竞争行为需赔偿腾讯经济损失100万元。近日,北京市东城区人民法院审理的一起不正当竞争案中,原告腾讯认为被告的行为导致微信系统内数据的不陕煤张家峁矿业公司5G赋能跑出智慧运输加速度智慧调度滴滴打车无人驾驶随着5G大数据人工智能在陕煤张家峁矿业公司的应用,这些省时省事省力的高科技术跑出了智慧运输加速度。智慧运输一键调度我们现在所在的位置是智慧运输调度室,从GI
魔角石墨烯被发现具有一种非常罕见的超导电性根据一项新的研究,魔角扭曲三层石墨烯不仅有一个令人印象深刻的奇异名字,它可能是一种特别罕见的超导体,从医疗设备到量子计算机,这种超导体可能在任何地方都有用武之地。科学家们发现,将单苹果13多亏了他们两个苹果13上市在即。iPhone手机每年都会推出一款主打的新配色,今年的iPhone13大概率也会增加一个新配色,有人透露今年iPhone13新颜色为黄铜色。这不就在近日,海外爆料者日出东方,唯红米note9Pro不败千元机市场上相比同等价位的千元机,红米note9pro无疑是这个价位里功能性最全的产品。性能配置上,红米note9pro搭载了高通骁龙750G处理器,Kryo570架构,8nm工艺起亚纯电动EV7假想图曝光,打造不一样的纯电硬派越野都知道未来是新能源汽车的天下,大众本田丰田现代等全球知名车企都开始往电气化转型,而豪华品牌也是如此,可见传统燃油车时代已经开始满满终结。而作为韩系主力军之一的起亚也开始全面向电气化盘点几款20万左右的旗舰SUV,拒绝汉兰达,选它就对了不知道从什么时候开始,SUV成了国内汽车市场的新宠,今天咱给大家盘点几款20万左右的旗舰SUV,拒绝汉兰达,选它就对了!话不多说,一起来看看吧!吉利星越L售价13。7218。52万印度7月份机动车零售总额高达156万辆,同比增长34。1今天给大家说点好玩的,都知道咱们国内是全球最大汽车贸易市场,而印度一直要跟我们决出个胜负,这不八月份刚刚开始,印度就公布了7月份机动车零售总额,7月单月共计卖出156万台,这个数据别克GL8压力倍增,下半年合资MPV抱团来袭不知道从什么时候开始,MPV跟SUV成为了市场上的香饽饽,今天咱就来说说MPV,国内最受欢迎的三款MPV我想大家都知道,别克GL8本田奥德赛五菱宏光,它们分别代表了商务家用经济,可全新奥迪Q5etron将于年内发布,家用纯电SUV新选择都知道未来是新能源汽车的天下,大众本田丰田现代等全球知名车企都开始往电气化转型,豪华品牌也是如此,奔驰宝马奥迪也加入新能源汽车的大家庭。今天咱就给大家说说奥迪,近日我们从奥迪官方了特斯拉Model2预售价只有16万元,这一次降维打击范围太大都知道未来是新能源汽车的天下,大众本田丰田现代等全球知名车企都开始往电气化转型,而豪华品牌也是如此,可见传统燃油车时代已经开始慢慢终结。而特斯拉作为新能源汽车龙头老大来说,更是混得7月新能源汽车销量出炉,自主品牌成为最大赢家都知道未来是新能源汽车的天下,今天就给大家公布7月份新能源汽车的销量前五名,曾几何时特斯拉也是其中的霸主,不过随着自主品牌的持续发力,特斯拉终于跌落神坛,话不多说,让我们一句话点评特斯拉8月单月销量突破4万,成为国内新能源汽车最大赢家都知道未来是新能源汽车的天下,大众本田丰田现代等车企都开始往电气化转型,而特斯拉作为新能源汽车龙头老大来说更是混得风生水起,尤其是今年,在美国已经连续涨价12次,虽然涨价频发,但是