WebSocket

55 阅读1分钟

WebSocket

WebSocket和http一样是一种协议 被设计出来用于在客户端和服务器之间提供 低延迟全双工长期运行 的连接

全双工:通信的参与方可以同时发送和接收数据,不需要等待对方的响应或传输完成

代码示例: 服务器端

const http = require('http');
const WebSocket = require('ws');

const server = http.createServer();
const wss = new WebSocket.Server({server});

wss.on('connection',socket => {
    console.log('WebSocket连接已打开');

    socket.on('message',message => {
        console.log('收到消息:'+message);
        socket.send('Hello FireUG');
    });

    socket.on('close',() => {
        console.log('WebSocket连接已经关闭');
    });
});

server.on('request',(request,response) => {
    response.writeHead(200,{'Content-Type':'text/plain'});
    response.end('Hello,World!'); 
});

server.listen(8080,() => {
    console.log('服务器启动,端口号8080'); 
})

客户端

<template>
  <div>
    {{ msg }}
    <br />
    <button @click="sendMsg">发起请求</button>
  </div>
</template>
<script setup lang="ts">
import { ref } from 'vue';

const msg = ref('');

const socket = new WebSocket('ws://localhost:8080');
socket.onopen = function(event){
  console.log('WebSocket连接已经打开');
};

socket.onmessage = function(event){
  console.log('收到回复:'+event.data);
}

socket.onclose = function(event){
  console.log('WebSocket连接已关闭');
};
const sendMsg = () => {
  socket.send('Hello World!');
}
</script>
<style scoped>

</style>