WebSocket 使用示例,后台为nodejs

效果图

在这里插入图片描述

页面代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>WebSocket Client</title>
  </head>
  <body>
    <script>
      const ws = new WebSocket('ws://localhost:8765')
      ws.onopen = () => {
        console.log('HTML: init!')
        ws.send(`HTML say -> I'm init!`)
      }
      ws.onmessage = event => {
        console.log('HTML listen: ', event.data)
      }
      ws.onerror = error => {
        console.error('HTML Error: ', error)
      }
      ws.onclose = event => {
        if (event.wasClean) {
          console.log(
            'HTML Closed cleanly, code:',
            event.code,
            'reason:',
            event.reason
          )
        } else {
          console.error('HTML Connection died')
        }
      }
    </script>
  </body>
</html>

服务后台代码

const WebSocket = require('ws')

const wss = new WebSocket.Server({ port: 8765 })

wss.on('connection', ws => {
  console.log('SERVER: init!')
  ws.on('message', message => {
    console.log('SERVER listen: %s', message)
    setInterval(() => {
      function getTwoNum(num) {
        return (+num < 10 ? '0' : '') + num
      }
      const now = new Date()
      const nowStr = `${now.getFullYear()}-${getTwoNum(
        now.getMonth() + 1
      )}-${getTwoNum(now.getDate())} ${getTwoNum(now.getHours())}:${getTwoNum(
        now.getMinutes()
      )}:${getTwoNum(now.getSeconds())}`

      ws.send(`SERVER say -> ${nowStr}`)
    }, 3000)
  })
})

new WebSocket() api说明

var Socket = new WebSocket(url, [protocol] );
参数:

  • url, 指定连接的 URL
  • protocol 是可选的,指定了可接受的子协议

属性:

  • Socket.readyState 只读属性 readyState 表示连接状态(0-表示连接尚未建立; 1-表示连接已建立,可以进行通信; 2-表示连接正在进行关闭; 3-表示连接已经关闭或者连接不能打开)
  • Socket.bufferedAmount 只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。

事件:

  • open Socket.onopen 连接建立时触发
  • message Socket.onmessage 客户端接收服务端数据时触发
  • error Socket.onerror 通信发生错误时触发
  • close Socket.onclose 连接关闭时触发

方法:

  • Socket.send() 使用连接发送数据
  • Socket.close() 关闭连接

相关推荐

  1. Node.js环境WebSocket示例

    2024-03-22 11:20:05       17 阅读
  2. C++下跨平台websocket库及使用示例

    2024-03-22 11:20:05       14 阅读
  3. log4js-nodenodejs项目中的使用示例

    2024-03-22 11:20:05       36 阅读
  4. 前端node使用WebSocket实现实时通信例子

    2024-03-22 11:20:05       12 阅读
  5. webSocket使用

    2024-03-22 11:20:05       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-22 11:20:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-22 11:20:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-22 11:20:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-22 11:20:05       20 阅读

热门阅读

  1. js- find() 方法

    2024-03-22 11:20:05       19 阅读
  2. Mybatis之like、likeRight、likeLeft的使用

    2024-03-22 11:20:05       19 阅读
  3. 记录 Selenium 常用功能和API

    2024-03-22 11:20:05       19 阅读
  4. vue-pdf 预览pdf (数据流)

    2024-03-22 11:20:05       19 阅读
  5. 使用python和perl语言实现xlsx转化为csv

    2024-03-22 11:20:05       21 阅读
  6. Ubuntu20.04配置

    2024-03-22 11:20:05       21 阅读
  7. Elastic-Job 分布式任务调度

    2024-03-22 11:20:05       20 阅读
  8. Redis中的事务机制

    2024-03-22 11:20:05       19 阅读
  9. 脏牛提权漏洞

    2024-03-22 11:20:05       21 阅读
  10. C#面:什么是哈希表

    2024-03-22 11:20:05       25 阅读
  11. dfs剪枝

    dfs剪枝

    2024-03-22 11:20:05      17 阅读