当前位置: 首页 > news >正文

做一个网站价格莆田网站建设咨询

做一个网站价格,莆田网站建设咨询,个人网站可以做资讯小说类,公司做网站的意义流程分析 Websocket客户端与Websocket服务器端 前端浏览器和后端服务器的连接通信 HTTP与Websocket对比 服务器端编码 1.引入pom依赖 !--webSocket-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-sta…流程分析 Websocket客户端与Websocket服务器端 前端浏览器和后端服务器的连接通信 HTTP与Websocket对比 服务器端编码 1.引入pom依赖 !--webSocket-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId /dependency 2. 编写配置类 Configuration public class WebSocketConfig {Beanpublic ServerEndpointExporter serverEndpointExporter(){return new ServerEndpointExporter();} } 3.编写服务代码 import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint;/*** WebSocket服务器设置*/ ServerEndpoint(value /wsServer/{userId}) Component public class WebSocketServer {// concurrent包的线程安全Set用来存放每个客户端对应的MyWebSocket对象。public static ConcurrentHashMapString, WebSocketServer webSocketMap new ConcurrentHashMap();public static ConcurrentHashMapString, WebSocketServer typeMap new ConcurrentHashMap();// 与某个客户端的连接会话需要通过它来给客户端发送数据private Session session;// 接收userIdprivate String userId ;/*** 连接建立成功调用的方法*/OnOpenpublic void onOpen(Session session, PathParam(userId) String userId){this.session session;this.userId userId;if (webSocketMap.containsKey(userId)){webSocketMap.remove(userId);webSocketMap.put(userId, this);} else{webSocketMap.put(userId, this);}try{sendMessage(我是服务端你连接成功了);} catch (IOException e){e.printStackTrace();}}/*** 连接关闭调用的方法*/OnClosepublic void onClose(){if (webSocketMap.containsKey(userId)){webSocketMap.remove(userId);}}/*** 收到客户端消息后调用的方法*/OnMessagepublic void onMessage(String message, Session session){if (StringUtils.isNotBlank(message)){try{// 解析发送的报文JSONObject jsonObject JSON.parseObject(message);String type (String) jsonObject.get(type);if (typeMap.containsKey(type)){typeMap.remove(type);typeMap.put(type, this);} else{typeMap.put(type, this);}} catch (Exception e){e.printStackTrace();}}}/*** 发生错误时调用*/OnErrorpublic void onError(Session session, Throwable error){error.printStackTrace();}/*** 实现服务器主动推送*/public void sendMessage(String message) throws IOException{this.session.getBasicRemote().sendText(message);}/*** 发送自定义消息*/public static void sendInfo(String message, PathParam(userId) String userId) throws IOException{if (StringUtils.isNotBlank(userId) webSocketMap.containsKey(userId)){webSocketMap.get(userId).sendMessage(message);}}} 4.状态变更通知前端 // 通过WebSocket通知前端人员下发状态变更 try {// 通过map获取对应的sessionWebSocketServer.typeMap.get(userId).sendMessage(封装的消息体); } catch (IOException e) {throw new RuntimeException(e); }
http://www.pierceye.com/news/166224/

相关文章:

  • seo网站建设刘贺稳营销专家a西宁市网站建设多少钱
  • 上海哪家公司做网站最好网站建设服务合同 付款方式
  • 做网站需要源码吗软件代理商招募
  • 陕西省西安市制作网站上海云建站模板
  • wordpress注册审批汕头网站优化
  • 想招代理去什么网站做网站seo优化的公司
  • 网站制作是什么公司建设企业官方网站的流程
  • 深圳哪家网站建设公司好门户网站制作平台
  • 互联网网站模版工作室网站开发
  • 现在从事网站开发如何销售团队
  • 公司网站设计素材淘宝官网首页
  • 建设公司网站的目的seo推广软件下载
  • 排名好的成都网站建设十堰网络销售
  • 网站qq号获取网站运营与建设作业
  • 网站建设要经历哪些步骤建设银行官网学生交费网站
  • 如何注册网站平台怎么免费搭建一个网站
  • 淘宝客网站建设平台怎么获取网站数据做统计数据
  • 做网站找外包公司要要搞清楚什么抖音开放平台是干嘛的
  • 可以中英切换的网站怎么做四川住房建设厅官方网站
  • 网站制作网站设计优客工场 网站开发
  • 微网站建设开发用系统建购物网站
  • 小说网站建立浙江省和住房建设厅网站
  • 网站去掉后缀html代码运行框wordpress6
  • 做问卷的几个网站石家庄建站源码
  • 响应式网站的制作刷排名seo软件
  • 深圳方维网站设计公司做公司网站的
  • 21年网站搭建公司排行榜域名建设网站
  • 建设银行网银官方网站摄影大赛官网
  • 最好网站设计案例php网站开发能挣多钱
  • 长沙网站推广平台西安网站建设 app