当前位置: 首页 > 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.zqtcl.cn/news/166224/

相关文章:

  • 南昌模板建站定制网站合肥瑶海区网站建设价格
  • 奥尔马手表官方网站导出wordpress文章
  • 网站栏目内容和功能手机网站建设 如何获得更好的排名
  • 网站运营推广难做常德网警
  • 北滘网站建设公司在百度上做网站怎么做
  • 合肥网站建设 毅耘园林设计网站大全
  • 免费备案网站空间爱营销app
  • 郑州网站建设公网站建设需要步骤
  • 源创派网站建设做软件赚钱的网站有哪些
  • 中英文网站建设公司推广引流
  • 网站改域名百度热词指数
  • 网站开发工程师工作内容网站源码是用什么做的
  • 做网站优化费用免费的视频网站如何赚钱
  • 如何制作一个好网站中国建设银行网站暑假工报名
  • 阿里巴巴做网站找谁网站建设需要ui吗
  • 如何评价伊利集团网站建设长沙专业竞价优化首选
  • 网站建设费用标准做网站怎么盈利
  • 仕德伟做的网站图片怎么修initial wordpress
  • 网站制作公司多少费用正规的机械外包加工订单网
  • 网站的维护和推广2345网址大全设主页访问
  • 天津商城网站建设公司如何申请注册企业邮箱
  • 做家旅游的视频网站好给我一个可以在线观看的免费
  • 香奈儿网站建设做网站应该问客户什么需求
  • 永久免费ppt下载网站互联网上市公司一览表
  • 甘肃省建设工程168网站东营智能网站设计
  • 网站跨机房建设方案山西运城市建设局网站
  • 网站被k文章修改设计师图片素材
  • 建设银行益阳市分行桃江支行网站9377烈焰传奇手游官网
  • 网站收费怎么做沈阳建设工程信息网 等级中项网
  • 做网站后台教程视频杭州网站开发建设