问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

socket.io.js具体在哪

发布网友 发布时间:2022-04-22 05:46

我来回答

1个回答

热心网友 时间:2023-09-06 12:07



在很多需求业务中,都需要浏览器和服务器实时通信来实现功能,比如:扫码登录(扫码后,手机确认登录,PC网页完成登录并跳转)、订单语言提醒等,这些都是建立在两端实时通信的基础上的。对前端而言,来实现浏览器和服务器实时通信,最好的选择就是Socket.IO库,能够快速的实现两端实时通信功能。



1、什么是 Socket.IO?

Socket.IO 是一个WebSocket库,可以在浏览器和服务器之间实现实时,双向和基于事件的通信。它包括:Node.js服务器库、浏览器的Javascript客户端库。它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5

2、Socket.IO 主要特点



(1)、支持浏览器/Nodejs环境 (2)、支持双向通信 (3)、API简单易用 (4)、支持二进制传输 (5)、减少传输数据量

3、Vue.js 中 Socket.IO的使用



(1)客户端

npm install vue-socket.io --save
main.js添加下列代码

import VueSocketIO from 'vue-socket.io'

Vue.use(new VueSocketIO({
debug: true,
// 服务器端地址
connection: 'http://localhost:3000',
vuex: {
}
}))
发送消息和监听消息

//发送信息给服务端
this.$socket.emit('login',{
username: 'username',
password: 'password'
});
//接收服务端的信息
this.sockets.subscribe('relogin', (data) => {
console.log(data)
})
(2)服务端



服务端,我们基于express搭建node服务器。

npm install --save express
npm install --save socket.io
index.js文件

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.send('<h1>你好web秀</h1>');
});

io.on('connection',function(socket) {
//接收数据
socket.on('login', function (obj) {
console.log(obj.username);
// 发送数据
socket.emit('relogin', {
msg: `你好${obj.username}`,
code: 200
});
});
});

http.listen(3000, function(){
console.log('listening on *:3000');
});
然后启动服务端服务

node index.js
客户端即可查看效果。

4、Socket.IO有哪些事件



io.on('connect', onConnect);
function onConnect(socket){
// 发送给当前客户端
socket.emit(
'hello',
'can you hear me?',
1,
2,
'abc'
);
// 发送给所有客户端,除了发送者
socket.broadcast.emit(
'broadcast',
'hello friends!'
);
// 发送给同在 'game' 房间的所有客户端,除了发送者
socket.to('game').emit(
'nice game',
"let's play a game"
);
// 发送给同在 'game1' 或 'game2' 房间的所有客户端,除了发送者
socket.to('game1').to('game2').emit(
'nice game',
"let's play a game (too)"
);
// 发送给同在 'game' 房间的所有客户端,包括发送者
io.in('game').emit(
'big-announcement',
'the game will start soon'
);
// 发送给同在 'myNamespace' 命名空间下的所有客户端,包括发送者
io.of('myNamespace').emit(
'bigger-announcement',
'the tournament will start soon'
);
// 发送给指定 socketid 的客户端(私密消息)
socket.to(<socketid>).emit(
'hey',
'I just met you'
);
// 包含回执的消息
socket.emit(
'question',
'do you think so?',
function (answer) {}
);
// 不压缩,直接发送
socket.compress(false).emit(
'uncompressed',
"that's rough"
);
// 如果客户端还不能接收消息,那么消息可能丢失
socket.volatile.emit(
'maybe',
'do you really need it?'
);
// 发送给当前 node 实例下的所有客户端(在使用多个 node 实例的情况下)
io.local.emit(
'hi',
'my lovely babies'
);
};
socket.io官方文档中文版

连接引用:client.conn请求引用:client.requestIO引入socket.io的JS库,使用标准化库时暴露为io命名空间;使用Node编译时,使用require('socket.io-client')。协议版本号:io.protocol创建实例:io(url[, options])初始化示例:使用多路复用自定义path:socket连接到admin命名空间,使用自定义路径mypath请求...

Node.js精进(11)——Socket.IO

Socket.IO是一个建立在WebSocket协议之上的JavaScript库,为客户端和服务器间的通信提供了低延迟、双向和基于事件的特性。它扩展了WebSocket的功能,包括回退到HTTP长轮询、自动重连、数据包缓冲和多路复用等,旨在提升实时通信的可靠性和效率。尽管Socket.IO不是WebSocket的直接实现,但它在WebSocket的基础上添...

Vue.js如何使用Socket.IO的示例代码

对前端而言,来实现浏览器和服务器实时通信,最好的选择就是Socket.IO库,能够快速的实现两端实时通信功能。1、什么是 Socket.IO?Socket.IO 是一个WebSocket库,可以在浏览器和服务器之间实现实时,双向和基于事件的通信。它包括:Node.js服务器库、浏览器的Javascript客户端库。它会自动根据浏览器...

websocket 和 socket.io 之间的区别是什么

你在任何浏览器里都可以使用socket.io来建立异步的连接。socket.io包含了服务端和客户端的库,如果在浏览器中使用了socket.io的js,服务端也必须同样适用。如果你很清楚你需要的就是websocket,那可以直接使用websocket。

socket.io的详细工作流程是怎样的?

如 ping(2)、pong(3)、message(4)。socket.io 在 engine.io 基础上封装,提供如 namespace、复用、自动重连等特性,简化通信逻辑。服务端使用 ws 库实现 WebSocket 协议。socket.io 监听 HTTP 服务器的 upgrade 和 request 事件,进行握手和处理 EIO Socket 请求。具体处理过程与前端相呼应。

在vue中使用socket.io

socket.io的github地址: https://github.com/MetinSeylan/Vue-Socket.io 一、关于socket通信的简单说明 Socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信(来源百科)。它是一种全双工(服务端与客户端可同时收发消息)...

websocket协议详解?

我们在使用WebSocket协议时通常不会使用它的API来实现,而是借助于Socket.io,Socket.io是一个WebSocket库,包括客户端的js和服务端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。它会自动根据浏览器从WebSocket、AJAX长轮询等各种方式中选择最佳的方式来实现网络实时应用,也就是说如果浏览器对WebS...

后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服...

- 在`main.js`中引用socket.io实例,并配置前端与后端服务地址的连接。- 创建`index.vue`组件展示用户界面,通过socket.io接收和发送消息。- 可以开发`item.vue`组件模拟客服界面,实现多用户同时在线聊天。5. **测试与验证**:- 访问前端页面`http://localhost:8080`,验证服务链接成功。- 测试`...

egg.js集成Socket.io实现推送和即时通信

一个基于 Node.js 的实时应用程序框架,在即时通讯、通知与消息推送,实时分析等场景中有较为广泛的应用 不知道怎么搭建egg项目的翻下以前的文章 到这里egg-socket.io已经开启并配置完毕了, 接下来我们就要编写路由和控制器了 到这里服务端完成, 下面我们来写一个简单的socket.io客户端 到这就结束了,...

websocket 和 socket.io 之间的区别是什么

1.websocket:在使用websocket时,虽然主流浏览器已经被支持,但是可能存在不兼容性。2,套接字。io:使用插座的时候。io中,不担心兼容性问题,底层会自动选择最佳的通信方式。三、用途不同 1.websocket:websocket适合用于client和基于node搭建的服务端使用。2.socket.io:socket.io适合进行服务端和客户端...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
北京市大兴区瀛海镇南宫村是什么户口 表示七夕的诗句有哪些 无锡的的东港镇好吗? 无锡新区哪个镇比较好 无锡锡山区哪些镇好 无锡哪个镇最强 江苏无锡有哪些镇 求好看的言情小说,像何以笙箫默,原来你还在这里,岁月是朵两生花_百度... 睛引子是什么意思?自杜甫诗《闲题》。 怎样删除word文档里面的空格? UNIX网络编程中的Socket,Bind,Listen等包裹函数在... 为什么我下载了虐杀原形2安装之后就显示这个进不去? 家用中央空调的优缺点 linux redhat6.5 的sock在哪 虐杀原形2进不去。 Socket工作在OSI的哪些层?或者是哪些部分,其物理... 为什么虐杀原形2进不去 制作成功的演示文稿,如果为了以后打开时自动播放... php socket client放在哪 虐杀原形2进不去啊! 虐杀原形2下载好了进不去 制作一个优秀的演示文稿除了掌握技术外还需要遵循... java socket编程 用在哪里 为什么要用? 虐杀原形2进不去啊 我编了一个程序,用于专业学习,需要24小时挂机,... 虐杀原形2进不去,程序终止 &lt;sys/socket.h&gt;在ubuntu中的哪个位置 虐杀原形2怎么进不去 乌龟有什么种类? 虐杀原形2进不去 虐杀原形2 进不去游戏,黑屏,移动鼠标就这样 各种... mclaren是什么车的标志 迈凯轮MP4-12C和F1和P1哪个极速更快?另外哪个综合... 制作演示文稿作品可添加的动态效果有哪些 迈凯轮MP4 C12的参数? 迈凯轮mp4-12c用c2驾照可以开么? 钳工 中级考试难不难 家用中央空调该怎么选? 迈凯伦MP4-12C敞篷版实车 拉风的造型 迈凯轮MP4-12C和迈凯轮12C有什么区别? 迈凯伦 迈凯伦MP4 12C怎么样 mclaren是什么车? 法拉利458和迈凯轮MP4 12C 哪个更好? 迈凯轮MP4 如何正确的检测心电监护仪的性能? V12 Vantage和迈凯伦MP4-12C哪个好 极品飞车17迈凯轮mp4_12c这两车在哪阿?刚把他打败... 迈凯轮mp4-12c的颜色看起来像芒果怎么翻译 迈凯轮mp4-12c和法拉利458相比哪个比较好 迈凯轮是个车的品牌?
  • 焦点

最新推荐

猜你喜欢

热门推荐