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

怎么用dw建设自己的网站展示用网站

怎么用dw建设自己的网站,展示用网站,上海化工网站建设,为什么网站显示乱码基于注解开发 WebSocket –注解就是#xff1a; OnOpen、 OnClose 、 OnMessage 、OnError这些 ★ WebSocket的两种开发方式 ▲ Spring Boot为WebSocket提供了两种开发方式#xff1a; 基于spring-boot-starter-websocket.jar开发WebSocket 基于Spring WebFlux开发WebSoc…基于注解开发 WebSocket –注解就是 OnOpen、 OnClose 、 OnMessage 、OnError这些 ★ WebSocket的两种开发方式 ▲ Spring Boot为WebSocket提供了两种开发方式 基于spring-boot-starter-websocket.jar开发WebSocket 基于Spring WebFlux开发WebSocket 两种方式对比 springboot API Socket套接字。 插座。 在通信的两端分别建立虚拟的Socket插座网络协议就会负责在两个Socket之间建立虚拟线路。然后通信的两端即可通过该虚拟线路进行实时的、可靠的通信。 ▲ WebSocket 就是在服务器与客户端浏览器之间的建立双向通信的Socket。从而保证服务器与客户端浏览器之间可进行实时的双向通信。 ▲ 传统Web应用 请求 - 响应。 这种模型没办法让服务器主动将数据推送客户端的浏览器。 还有比如SSE服务器事件机制 ★ 基于Spring Boot自动配置来开发WebSocket 两步 1定义一个WebSocket处理类 该处理类有两种开发方式历史原因造成第一种方式 - 直接使用JDK提供的 WebSocket注解 修饰处理方法并使用 ServerEndpoint 注解修饰该处理类即可。WebSocket注解就是 OnOpen、 OnClose 、 OnMessage 、OnError这些——这种方式下方法签名可以随便写方法参数也可以自行定义非常灵活。官方也推荐尽量使用第一种方式第二种方式 - 实现WebSocketHandler接口、并实现该接口中定义的各种处理方法。——Java语法规定实现接口时实现的方法必须与接口中定义的方法有相同的方法签名。——这种方式就不够灵活。2配置或导出WebSocket处理类 如果采用注解方式开发WebSocket处理类 这一步只需要在 Spring容器 中配置一个ServerEndpointExporter Bean 导出器即可。 该导出器会负责将容器中所有的ServerEndpoint注解修饰的处理Bean都导出成WebSocket。 因此无论程序有多少个WebSocket处理Bean导出器Bean只要配置一个即可。 ——非常简单、方便。如果采用是实现接口的方式开发WebSocket处理类 这一步就需要使用WebSocketConfigurer来配置WebSocket。代码演示 创建项目 开发websocket的两步。 注解PathParam() 属于 WebSocket 的用于获取路径上的参数。 发送消息的简单解释 完整代码 前端页面 !DOCTYPE html html langen headmeta charsetUTF-8title 基于WebSocket的多人聊天 /titlescript typetext/javascript// 定义Web Socket对象var webSocket null;let sendMsg function(){if (webSocket null || webSocket.readyState ! 1){document.getElementById(show).innerHTML 还未连接服务器请先连接WebSocket服务器br;return;}let inputElement document.getElementById(msg);// 发送消息webSocket.send(inputElement.value);// 清空单行文本框inputElement.value ;}let connect function(){let name document.getElementById(name).value.trim();if (name null || name ){document.getElementById(show).innerHTML 用户名不能为空br;return;}if (webSocket webSocket.readyState 1){webSocket.close();}webSocket new WebSocket(ws://127.0.0.1:8080/websocket/ name);webSocket.onopen function(){document.getElementById(show).innerHTML 恭喜您连接服务器成功br;document.getElementById(name).value ;// 为onmessage事件绑定监听器接收消息webSocket.onmessage function(event){// 接收、并显示消息document.getElementById(show).innerHTML event.data br;}};}/script /head body input typetext size20 idname namename/ input typebutton value连接 onclickconnect();/ div stylewidth:600px;height:240px;overflow-y:auto;border:1px solid #333; idshow/div input typetext size80 idmsg namemsg/ input typebutton value发送 onclicksendMsg();/ /body /htmlMyWebSocketHandler 注解开发各方法 package cn.ljh.app.websocket;import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.util.Map; import java.util.concurrent.ConcurrentHashMap;//基于注解开发 WebSocket --注解就是 OnOpen、 OnClose 、 OnMessage 、OnError这些Component //这个注解需要指定指定映射地址 ServerEndpoint(/websocket/{name}) Slf4j public class MyWebSocketHandler {//可以用注解来修饰不同的处理方法//假设是一个聊天室map 中的key 是每个用户的 Session value 是用户的name//创建一个线程安全的map 用这个map来保存各用户的Session与name之间的对应关系public final static MapSession,String myClients new ConcurrentHashMap();//当浏览器 与 Websocket 服务器建立连接的时候触发该方法//这个Session参数代表浏览器 与 WebSocket 服务器所建立连接会话它用于通信。//这个 PathParam() 相当于spring mvc 中的 PathVariable//都是用来获取路径中的参数--获取这个路径/websocket/{name} 中的name参数OnOpenpublic void onOpen(Session session , PathParam(name) String name){//当用户登录的时候把信息存进去myClients.put(session,name);log.debug(--------- onOpen ----------);}//当浏览器与WebSocket服务器 关闭的时候触发该方法OnClosepublic void onClose(Session session){//当连接关闭的时候就将该客户端从map中删除myClients.remove(session);log.debug(--------- onClose ----------);}//当 WebSocket服务器 收到 浏览器 发送过来的消息时触发该方法SneakyThrowsOnMessagepublic String onMessage(Session session, String message){//收到消息把消息广播给每个客户端 keySet()--将map中的所有key存到set集合中for (Session client : myClients.keySet()){//此处的 client 就代表每个客户端//向client 发送信息这个 client 代表了一个浏览器//getBasicRemote() 表示给客户端发送消息是同步的、阻塞的 sendText() 发送消息client.getBasicRemote().sendText(myClients.get(session) 说message);}log.debug(--------- onMessage ----------message);return null;}//但 WebSocket 服务器 与 浏览器通信出现异常时触发该方法//这个 Throwable 参数就代表了出现的异常OnErrorpublic void onError(Session session, Throwable ex){//当连接出现异常的时候将该客户端从 Map 中栅除myClients.remove(session);log.debug(--------- onError ----------);}}MyWebSocketConfig 配置 WebSocket 导出器 package cn.ljh.app.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter;/*** author JH* date 2023/9/7 0007 12:28*/Configuration public class MyWebSocketConfig {/**配置 WebSocket 导出器** 该导出器会负责将容器中所有的 ServerEndpoint 注解修饰的 处理Bean 都导出成 WebSocket。* 因此无论程序有多少个 WebSocket 处理Bean导出器Bean 只要配置一个即可。*/Beanpublic ServerEndpointExporter serverEndpointExporter(){return new ServerEndpointExporter();} } application.yml 配置日志级别 #给这个包设置日志级别为debug logging:level:cn:ljh:app:websocket: debug 测试 进行websocket连接 成功基于注解开发WebSocket 的多人聊天室
http://wiki.neutronadmin.com/news/428850/

相关文章:

  • 免费观看行情软件网站进入大德通众包做网站怎么样
  • 网站两边的悬浮框怎么做wordpress外链图片不显示
  • 自己的网站做防伪码html5怎么做简单的网站
  • 做网站在哪接单政务服务网站建设性建议
  • 网站分析怎么做的wordpress 4.8.2 中文
  • 做网站哪一家比较好简洁大气网站源码
  • 有哪些网站交互效果做的好的什么叫商业网站
  • 网站建设和关键词优化技巧石家庄的网站建设公司
  • 同ip网站怎么做英德市住房城乡建设网站
  • 网站seo推广多少钱网站开发所用到的技术
  • 网站搭建服务器wordpress主题滑动
  • 网站规划与建设心得浅谈企业网站建设的目标
  • 网上学习做网站主要的网站开发技术路线
  • 徐州做网站的公司哪家好wordpress用户角色的区别
  • phpcms 手机网站廊坊做网站1766534168
  • 提供零基础网站建设教学公司开发板是单片机吗
  • 网站js修改代码建设网站查询余额
  • 网站网页设计优秀案例深圳app开发哪家专业
  • 对电子商务网站建设的感想做电影平台网站怎么赚钱的
  • 企业门户网站内容建设什么网上平台可以找客源
  • 做网站注意事项同城推广方法
  • 怎么建立自己的网站免费wordpress好123
  • flash学习网站网站建设要考虑哪些内容
  • 标准通网站建设东莞最大的保安公司
  • 朝城做网站公司最新的军事新闻
  • 实木餐桌椅网站建设公司高大上网站设计
  • 网站后台管理系统破解男做直播网站
  • 网站设计psd模板网站建设需要包含什么
  • 甘肃省城乡与住房建设厅网站高德北斗导航
  • 无锡网站设计哪家公司好怎样做付费下载的网站