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). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...
随机推荐
- [BZOJ4517][SDOI2016]排列计数(错位排列)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 1616 Solved: 985[Submit][Statu ...
- 快速排序-C
#include <stdio.h> #include <stdlib.h> #define N 6 int partition(int arr[], int low, int ...
- bzoj 1779
较水的网络流. /************************************************************** Problem: 1779 User: idy002 L ...
- Java 请求webServce接口 不带参数
最近对接了个webService的接口取数据,从网上良莠不齐的代码中找到了个方法, 具体作者已经记不住是谁了,现在把代码贴出来,希望可以帮到大家,代码如下,简单粗暴 public String get ...
- 用python slearning类库实现数据挖掘(python3.x)
Summary of test0 data : source data source code : in test0 file reference : - Reference Website / - ...
- 稀疏编码直方图----一种超越HOG的轮廓特征
该论文是一篇来自CMU 的CVPR2013文章,提出了一种基于稀疏编码的轮廓特征,简称HSC(Histogram of Sparse Code),并在目标检测中全面超越了HOG(Histogram o ...
- hibernate 开发步骤
1 创建Customer表 CREATE TABLE CUSTOMER ( CID int NOT NULL PRIMARY KEY , USERNAME varchar(20) , PASSWORD ...
- 树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)
解决方法: 1.配置好静态IP在/etc/network/interface 2.关闭dhcp服务(不知道这个服务是干嘛的,明明是客户端还需要这个) sudo systemctl stop dhcpc ...
- Ant简单工程的构建
1.在Ant的官方网站http://ant.apache.org/bindownload.cgi下载Ant最新版本(我下载的是apache-ant-1.8.2-bin.zip),Ant无需安装,直接解 ...
- 分享一个基于 Node.js 的 Web 开发框架 - Nokitjs
简介 Nokit 是一个简单易用的基于 Nodejs 的 Web 开发框架,默认提供了 MVC / NSP / RESTful 等支持,并提供对应项目模板.管理工具. 资源 GitHub https: ...