免费PHP万能建站系统_社区团购SaaS_商城系统_软件开发_虚拟币交易所系统_矿机系统_微信钻石投票系统_成品源码

标题: ws 前端连接案例 [打印本页]

作者: admin    时间: 2022-2-7 11:35
标题: ws 前端连接案例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title></title>
  6. </head>
  7. <body>
  8.     Welcome<br/><input id="text" type="text"/>
  9.     <button onclick="send()">发送消息</button>
  10.     <hr/>
  11.     <button onclick="closeWebSocket()">关闭WebSocket连接</button>
  12.     <hr/>
  13.     <div id="message"></div>
  14. </body>

  15. <script type="text/javascript">
  16.     let websocket = null;
  17.     //判断当前浏览器是否支持WebSocket
  18.     if ('WebSocket' in window) {
  19.         websocket = new WebSocket("ws://10.10.10.10:8080/ws");
  20.     } else {
  21.         alert('当前浏览器 Not support websocket')
  22.     }

  23.     //连接发生错误的回调方法
  24.     websocket.onerror = function () {
  25.         setMessageInnerHTML("WebSocket连接发生错误");
  26.     };

  27.     //连接成功建立的回调方法
  28.     websocket.onopen = function () {
  29.         websocket.send(
  30.             JSON.stringify({
  31.                 action: 'SOME_ACTION',
  32.                 data: {
  33.                     name: 'aaa'               
  34.                 }
  35.             })
  36.         )
  37.         setMessageInnerHTML("WebSocket连接成功");
  38.     }

  39.     setTimeout(() => {
  40.         websocket.send(
  41.             JSON.stringify({
  42.                 action: 'KEEP_ALIVE',
  43.             })
  44.         )
  45.     }, 10000)


  46.     //接收到消息的回调方法
  47.     websocket.onmessage = function (event) {
  48.         setMessageInnerHTML(event.data);
  49.     }

  50.     //连接关闭的回调方法
  51.     websocket.onclose = function () {
  52.         setMessageInnerHTML("WebSocket连接关闭");
  53.     }

  54.     //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
  55.     window.onbeforeunload = function () {
  56.         closeWebSocket();
  57.     }

  58.     //将消息显示在网页上
  59.     function setMessageInnerHTML(innerHTML) {
  60.         document.getElementById('message').innerHTML += innerHTML + '<br/>';
  61.     }

  62.     //关闭WebSocket连接
  63.     function closeWebSocket() {
  64.         websocket.close();
  65.     }

  66.     //发送消息
  67.     function send() {
  68.         const message = document.getElementById('text').value;
  69.         websocket.send(message);
  70.     }
  71. </script>
  72. </html>
复制代码







欢迎光临 免费PHP万能建站系统_社区团购SaaS_商城系统_软件开发_虚拟币交易所系统_矿机系统_微信钻石投票系统_成品源码 (https://ourphp.net/club/) Powered by Discuz! X3.2