webSocket chapter 1

WebSocket.OPEN 是 WebSocket 对象的一个属性,表示 WebSocket 连接的状态。其值为 1,表示连接已经打开并且可以进行通信。

WebSocket 对象的状态有以下几种:

  • WebSocket.CONNECTING:值为 0,表示连接还未开启。
  • WebSocket.OPEN:值为 1,表示连接已经开启并且可以进行通信。
  • WebSocket.CLOSING:值为 2,表示连接正在关闭。
  • WebSocket.CLOSED:值为 3,表示连接已经关闭或者连接无法建立。
html 复制代码
<!--
 * when you set a variable | function | logic | declaration,please add  a  annotation as possible,God Bless You 🎈
 *  
 * @Author: guoyongkun 👨‍💻
 * @Date: 2024-02-24 09:16:08
 * @LastEditors: guoyongkun 👨
 * @LastEditTime: 2024-02-24 10:19:56
 * @FilePath: /websocket/index.html
 * @Description: please  set some  description for this file , let's improve the  code maintainability 💡 ... 
-->
<!-- index.html -->
<!doctype html>
<html>
  <head>
    <title>WebSocket Demo</title>
  </head>
  <body>
    <button id="sendButton">Send Message</button>
    <script>
      const socket = new WebSocket('ws://localhost:3000');
    //   console.log(socket.binaryType, 'socket.binaryType');
    //   socket.binaryType = 'arraybuffer';
      socket.addEventListener('open', () => {
        console.log('Connected to server');
      });

      socket.addEventListener('message', (event) => {
        console.log('Message from server: ', event.data);
        console.log(event.data+'', 'event.data');
        // blob 转换为字符串
        // const reader = new FileReader();
        // reader.onload = function () {
        //   console.log('reader.result', reader.result);
        // };
        // reader.readAsText(event.data);
      });

      document.getElementById('sendButton').addEventListener('click', () => {
        socket.send('Hello Server!');
      });
    </script>
  </body>
</html>
javascript 复制代码
/*
 * when you set a variable | function | logic | declaration,please add  a  annotation as possible,God Bless You 🎈
 *
 * @Author: guoyongkun 👨‍💻
 * @Date: 2024-02-24 09:17:47
 * @LastEditors: guoyongkun 👨
 * @LastEditTime: 2024-02-24 10:50:19
 * @FilePath: /websocket/server.js
 * @Description: please  set some  description for this file , let's improve the  code maintainability 💡 ...
 */
// server.js
const express = require('express');
const WebSocket = require('ws');
const http = require('http');
// const Blob = require('blob');
const app = express();
// const Blob = require('fetch-blob');
// import Blob from 'fetch-blob';
// console.log('app99',app);
const server = http.createServer(app);
const wss = new WebSocket.Server({server});

wss.on('connection', (ws) => {
  console.log('Client connected');

  ws.on('message', (message) => {
    console.log('Received: ' + message);
    console.log(message + 'message1');
    // Broadcast the message to all clients
    console.log(wss.clients.size, 'wss.clients.size');
    // console.log(wss.clients,'wss.clients');
    wss.clients.forEach((client) => {
      if (client.readyState === WebSocket.OPEN) {
        console.log('Send message to client', client.readyState);
        console.log(message, 'message2');
        client.send(message);
      }
    });
  });

  ws.on('close', () => {
    console.log('Client disconnected');
  });
});

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

import('fetch-blob').then((module) => {
  //   console.log(module, 'module.default');
  //   let blob1 = new module.Blob(['123'], {type: 'text/plain'});
  //   console.log(blob1+'1', 'blob1');
});

// 创建一个长度为 10 的 Buffer,填充为 0
const buf1 = Buffer.alloc(10);
console.log(buf1, 'buf1');//<Buffer 00 00 00 00 00 00 00 00 00 00>
buf1.write('123');
console.log(buf1, 'buf1');//<Buffer 31 32 33 00 00 00 00 00 00 00>
// 读取 Buffer 中的数据
for (let i = 0; i < buf1.length; i++) {
  console.log(buf1[i]); // 打印每个字节 // 49 50 51 0 0 0 0 0 0 0
}
//读取 Buffer 中的数据
console.log(buf1.toString()); /// 123
相关推荐
m0_715674436 分钟前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
网络·安全·网络安全
dk_tjy28 分钟前
AI驱动的自动化攻击背景下:企业端点安全体系的技术架构与建设路径
网络·人工智能·安全·自动化·终端安全管理·数据防泄漏
昂好的day3 小时前
VisionMaster 通信模块实战(上):Modbus、TCP 收发、协议组装解析
开发语言·网络·网络协议·tcp/ip·c#
Escalating_xu4 小时前
【Linux 网络编程】connect 的断线重连:用状态机写一个能恢复连接的 TCP 客户端
linux·网络·tcp/ip
2401_868534786 小时前
局域网络中信息安全方案设计及攻击防范技术(制造企业园区网)
服务器·网络
懂点Tech7 小时前
ctfshow MISC入门图片篇(信息附加):misc21解题思路
网络
CS_Zero7 小时前
计算机网络通信基础2:带宽和吞吐量、客户端和服务器、网络基础设施
网络·计算机网络
盛世宏博智慧档案7 小时前
算力机房多协议融合:Modbus TCP 温湿度变送器与 SNMP 设备混合组网方案
网络·网络协议·tcp/ip·传感器·温湿度
知识分享小能手8 小时前
C学习教程,从入门到精通,C语言文件 — 完整知识点详解(14)
c语言·网络·学习
zhuhai_xigedian8 小时前
源网荷储一体化柜通信层:网络架构与协议矩阵设计
网络·矩阵·架构