找回密码
 立即注册
即日起,论坛关闭新用户注册和登录,论坛相关的贴子保留查阅和下载。获得授权后,有技术问题可联系微信 13199509559 一对一解决。 2024-3-12
查看: 3035|回复: 0
打印 上一主题 下一主题

ws 前端连接案例

209

主题

209

主题

209

主题

管理员

Rank: 9Rank: 9Rank: 9

积分
0
跳转到指定楼层
1#
admin 发表于 2022-2-7 11:35:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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>
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表