数字钱币生意业务体系、正在线文档多人编纂、
怪人怪事 2023-05-04 19:38www.bnfh.cn怪人怪事
数字货币交易系统、在线文档多人编辑、在线客服系统都要用的技术
一、WebSocket概述
WebSocket是一种在单个TCP连接上进行全双工通信的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的链接,并进行双向数据传输
在WebSocket出现之前,我们想要获取服务端的数据只能通过客户端向服务端发送请求,如果当服务端响应数据,客户端想要实时的更新,我们采用的是Ajax轮询,非常浪费资源和降低性能,并且不能真正的实时刷新,WebSocket可以解决这个问题
二、WebSocket使用
1、Express服务端
安装依赖
npm i socket.io
project/s.js
const express = require("express");
const app = express();
//实例化WebSocket对象
let s = require("http").Server(app);
var io = require("socket.io")(s);
//监听端口
server.listen(3000, () => {
console.log("服务器已连接");
});
// 监听connection
// 如果有客户端进行连接,那么会监听
io.on("connection", function (socket) {
console.log("建立连接......");
// 监听handler
// 当客户端触发了handler事件,那么会监听到
/ socket.on("handler", function (data) {
console.log(data); // 你好,我是客户端的数据
}); /
// 触发sho事件并且传递数据
// sho是客户端方法
socket.emit("clientHandler","你好,我是服务端数据");
});
2、Vue2客户端
安装依赖
npm i vue-socket.io socket.io-client
注册WebSocket
project/main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
Vue.config.productionTip = false
import SocketIO from 'vue-socket.io';
import ClientSocketIO from 'socket.io-client';
Vue.use(
ne SocketIO({
debug:false,
connection:ClientSocketIO.connect("s://localhost:3000",{
transports:["ebsocket"],
autoConnect:false // 默认不建立连接
})
})
);
ne Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
组件中使用WebSocket
project/src/vies/WebSocket.vue
{{msg}}
奇闻怪事
- 黎姿老公马廷强前妻 黎姿老公马廷强前妻是谁
- 紫禁城闹鬼是真的吗 紫禁城闹鬼是怎么回事
- 80年黄河透明棺材事件 80年代黄河透明棺材始末
- 51区外星人录像是真的吗 51区外星人真的存在吗
- 姜潮麦迪娜恋爱过程 姜潮麦迪娜怎么认识的
- 根达亚文明大概离现在多久 根达亚文明距今多少
- 赤塔事件真的还是假的 赤塔事件到底怎么回事
- 百慕大三角在哪个国家 百慕大三角在哪个国家的
- 邓超出轨安以轩:邓超出轨安以轩是不是真的
- 中国十大闹鬼最凶的地方 中国十大闹鬼最凶的地
- 湘西鬼结婚事件:湘西鬼结婚事件真假
- 中国昆仑山10大灵异绝密档案 中国昆仑山10大灵异
- 李维嘉的父亲是谁 李维嘉父母是哪里人
- 朱秀华事件是不是真的 朱秀华事件的真相是什么
- 太湖冤魂:太湖冤魂事件真假
- 爪哇虎和东北虎谁厉害 爪哇虎和东北虎谁厉害一