前端WebSocket创建和使用

创建WebSocket

// 创建一个webSocket对象
let socket = new WebSocket("url");

建立连接,发送消息

// 建立连接
socket.onopen = function(e) {
  alert("链接成功");
  // 发送消息
  socket.send("hi");
};

监听消息

// 收到消息
socket.onmessage = function(event) {
  alert(`返回消息: ${event.data}`);
  //消息处理、、、
};

关闭链接

socket.onclose = function(event) {
  if (event.wasClean) {
    alert(`状态码, code=${event.code} reason=${event.reason}`);
  } else {
    alert('异常关闭');
  }
};

链接错误

//错误信息
socket.onerror = function(error) {
  alert(`错误信息 ${error.message}`);
};

创建对象发出的请求的浏览器 header

GET /chat
Host: javascript.info
Origin: https://javascript.info
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: Iv8io/9s+lYFgZWcXczP8Q==
Sec-WebSocket-Version: 13
  1. Origin 客户端页面的源,对象是原生支持跨源的。没有特殊的 header 或其他限制。旧的服务器无法处理WebSocket,因此不存在兼容性问题。它允许服务器决定是否使用 WebSocket 与该网站通信。
  2. Connection: Upgrade 表示客户端想要更改协议。
  3. Upgrade: websocket 请求的协议是 “websocket”。
  4. Sec-WebSocket-Key 浏览器随机生成的安全密钥。
  5. Sec-WebSocket-Version WebSocket 协议版本,当前为 13。

如果服务器同意切换为 WebSocket 协议,服务器应该返回响应码 101

  1. 101 Switching Protocols
  2. Upgrade: websocket
  3. Connection: Upgrade
  4. Sec-WebSocket-Accept: hsBlbuDTkk24srzEOTBUlZAlC2g=
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值