websocket 协议 使用
1、websocket简介
websocket最主要特点是:服务器可以主动给浏览器发送消息,而不是被动接收浏览器请求。
websock协议可以参考:http://www.ruanyifeng.com/blog/2017/05/websocket.html
WebSocket 使用ws或wss协议(非http协议),Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息;XHR受到域的限制,而WebSocket允许跨域通信。
2、实现代码
(1)websocket.js
let websock; // 持续连接
function connection(wsuri) {
websock = new WebSocket(wsuri); // 建立连接
websock.onopen = function(e) {
console.log('收到服务器握手包.');
setInterval(function() {
let agentData = {'name': 'ping', 'message': 'message'}
websocketsend(agentData)
}, 30000)
} // 断开连接
websock.onclose = function(e) {
console.log('和服务器断开连接! (' + e.code + ')');
} // 连接发生错误
websock.onerror = function() {
console.log('websock连接发生错误');
}
} // 业务代码发送数据
function sendSock(agentData) {
console.log('agentData', agentData) // 链接成功,可以通信
if (websock.readyState === websock.OPEN) { websocketsend(agentData);
} else if (websock.readyState === websock.CONNECTING) { // 若是正在链接,则等待1s后重新调用
setTimeout(function() {
sendSock(agentData);
}, 1000);
} else { // 若未开启 ,则等待1s后重新调用
setTimeout(function() {
sendSock(agentData);
}, 1000);
}
} // 数据发送
function websocketsend(agentData) {
websock.send(JSON.stringify(agentData));
} export {connection, sendSock, websock}
(2)业务代码
//注意修改路径
import * as websocket from 'websocket.js'
//vue mounted时挂在websocket
mounted() {
websocket.connection(yourUrl) // onmessage 用于指定收到服务器数据后的回调函数。
websocket.websock.onmessage = (e) => {
//业务处理
}
}
methods:{
handleEvent() {
//发送数据
websocket.sendSock(yourParams)}
}
(3)websockt需要服务端配置好服务。
websocket 协议 使用的更多相关文章
- Websocket 协议解析
WebSocket protocol 是HTML5一种新的协议.它是实现了浏览器与服务器全双工通信(full-duplex). 现 很多网站为了实现即时通讯,所用的技术都是轮询(po ...
- WebSocket协议开发
一直以来,网络在很大程度上都是围绕着HTTP的请求/响应模式而构建的.客户端加载一个网页,然后直到用户点击下一页之前,什么都不会发生.在2005年左右,Ajax开始让网络变得更加动态了.但所有的HTT ...
- 初识WebSocket协议
1.什么是WebSocket协议 RFC6455文档的表述如下: The WebSocket Protocol enables two-way communication between a clie ...
- Websocket协议的学习、调研和实现
本文章同时发在 cpper.info. 1. websocket是什么 Websocket是html5提出的一个协议规范,参考rfc6455. websocket约定了一个通信的规范,通过一个握手的机 ...
- python测试基于websocket协议的即时通讯接口
随着html5的广泛应用,基于websocket协议的即时通讯有了越来越多的使用场景,本文使用python中的websocket-client模块来做相关的接口测试 import webclient ...
- Websocket协议之php实现
前面学习了HTML5中websocket的握手协议.打开和关闭连接等基础内容,最近用php实现了与浏览器websocket的双向通信.在学习概念的时候觉得看懂了的内容,真正在实践过程中还是会遇到各种问 ...
- Websocket协议数据帧传输和关闭连接
之前总结了关于Websocket协议的握手连接方式等其他细节,现在对socket连接建立后的数据帧传输和关闭细节总结. 一.数据帧格式 数据传输使用的是一系列数据帧,出于安全考虑和避免网络截获,客户端 ...
- Websocket协议之握手连接
Websocket协议是为了解决web即时应用中服务器与客户端浏览器全双工通信的问题而设计的,是完全意义上的Web应用端的双向通信技术,可以取代之前使用半双工HTTP协议而模拟全双工通信,同时克服了带 ...
- WebSocket协议
websocket 简介 (2013-04-09 15:39:28) 转载▼ 分类: websocket 一 WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例 ...
- Jmeter实现WebSocket协议的接口和性能测试方法
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...
随机推荐
- [BZOJ4444][SCOI2015]国旗计划(倍增)
链上是经典贪心问题,将线段全按左端点排序后把点全撒在线段右端点上.这里放到环上,倍长即可. 题目保证不存在区间包含情况,于是有一种暴力做法,先将战士的管辖区间按左端点从小到大排序,对于询问x,从x战士 ...
- 【矩阵快速幂优化DP】【校内测试】
实际上是水水题叻,先把朴素DP方程写出来,发现$dp[i]$实际上是$dp[i-k]-dp[i-1]$的和,而看数据范围,我们实际上是要快速地求得这段的和,突然就意识到是矩阵快速幂叻. 构建矩阵什么的 ...
- Spring事务为什么不会自动回滚?Spring事务怎样才会自动回滚?事务自动回滚条件及手动回滚
原文:https://blog.csdn.net/qq_32331073/article/details/76508147 更多Spring事务问题请访问链接:Spring事务回滚问题疑难详解 在此, ...
- Windows上安装Git替代cmd命令行程序
git是一个版本管理系统,利用好它,可以管理你项目文件,每个文件的更新删除修改,它都知道,还可以还原回历史的某个版本. msysgit是Windows版的Git. 1.下载地址:https://git ...
- Gulp插件autoprefixer的使用
1.创建:gulpfile.js //引入插件 var gulp = require('gulp'); var autoprefixer = require('gulp-autoprefixer'); ...
- 淘宝API开发第一步
1.登录淘宝开放平台:http://open.taobao.com/ 2.添加网站 (验证完网站后,会提醒“JSSDK以激活提交审核按钮”,这个需要的UV达100,按钮才会亮,审核过程中也得保持UV的 ...
- python 将有序list打乱
利用random模块下的shuffle函数就能够实现. 关于官网对于shuffle,我感觉说法上有一定的误解. 上面是官网的解释,他说会返回打乱的list,事实上什么也没有返回. 能够看到返回的是No ...
- 企业应用:浅谈 “数据权限” 和 查询 API 设计
背景 多数企业应用都需要对数据权限进行控制,如:某个用户只能看到某个范围的数据(数据行).某个用户只能看到某几列数据(数据列).本文以数据行级别的权限控制为范例,谈谈如何设计权限模型和查询 API. ...
- TOP命令监视系统任务及掩码umask的作用
top 命令使用方法及參数. top 选择參数 參数: -b 以批量模式执行.但不能接受命令行输入: -c 显示命令行,而不不过命令名. -d N 显示两次刷新时间的间隔,比方 -d 5,表示两次 ...
- Java中23种经典设计模式详解
Java中23种设计模式目录1. 设计模式 31.1 创建型模式 41.1.1 工厂方法 41.1.2 抽象工厂 61.1.3 建造者模式 101.1.4 单态模式 131.1.5 原型模式 151. ...