分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

websocket的实践

发布时间:2023-09-06 02:19责任编辑:彭小芳关键词:websocket

最近接触到 websocket,由于之前并没有使用过,所以网上百度一番,最后还是看了一遍 websocket的介绍

上面文章原理上的都说的很明白,所以我就提取出我自己要用的小 demo 来,下面分别是属性,事件,方法的介绍,为了方便查看故将上面介绍中的顺便拿过来。

属性

readyState (只读属性 readyState 表示连接状态)

0 - 表示连接尚未建立。

1 - 表示连接已建立,可以进行通信。

2 - 表示连接正在进行关闭。

3 - 表示连接已经关闭或者连接不能打开。

事件

Socket.onopen 连接建立时触发

Socket.onmessage 客户端接收服务端数据时触发

Socket.onerror 通信发生错误时触发

Socket.onclose 连接关闭时触发

方法

Socket.send() 使用连接发送数据

Socket.close() 关闭连接

这样我们就可以一边看着下面代码,也可以看着这些方法事件等来修改 demo。

var wsvar url = "ws://xxxx"function WebSocketTest() { ?if ("WebSocket" in window) { ???// 打开一个 web socket ???ws = new WebSocket(url); ???ws.onopen = function() { ?????// 根据后台要求拼接好对应的 json 数据(不一定是 json, 看后台规定) ?????var json={ ???    "test": "test" ?????} ?????console.log(‘WebSocket 第‘ + n + ‘次请求‘) ?????// Web Socket 已连接上,使用 send() 方法发送数据 ?????ws.send(JSON.stringify(json)); ?????console.log(‘已连接上 WebSocket‘) ?????// 模拟断开 => 可以开启下面代码模拟服务器断开时重新请求连接的效果 ?????// setTimeout(function(){ ?????// ??ws.onclose() ?????// }, 8000) ???}; ???ws.onmessage = function (ev) { ?????var json = ev.data; ?????console.log(‘这里是接收到服务器发送的数据:‘ + json) ???}; ???ws.onclose = function() { ?????// 关闭 websocket ?????console.log("连接已关闭...") ?????// 当监听到 websocket 连接断开时,重新连接 ?????reconnect() ???}; ?} else { ????// 浏览器不支持 WebSocket ????alert("您的浏览器不支持 WebSocket!"); ??}}var timer = null// 重新连接function reconnect () { ?try { ???// 将上一次的定时器清除 ???timer && clearTimeout(timer) ???// 这里将尝试连接 ???WebSocketTest() ?} catch { ???// 当连接失败时延迟3秒后再次重新请求连接 ???timer = setTimeout(function (){ ?????reconnect() ???}, 3000) ?}}// 页面关闭时触发window.onunload = function () { ?if (ws) { ???ws.close() ?}}// 页面刷新时触发window.onbeforeunload = function () { ?if (ws) { ???ws.close() ?}}

websocket的实践

原文地址:https://www.cnblogs.com/webBlog-gqs/p/9858501.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved