Socket.io

Vue 中使用

NPM 安装
  npm install vue-socket.io --save
npm install --save socket.io-client
引用

详情

  // 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)
})

学习文档

w3cschool资料

官方文档

方法(具体示例)

    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.io 入门 - Renyi的博客n class="nx">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.on('connection',function(socket)); // 给所有客户端广播消息
io.sockets.emit('String',data); // 给指定的客户端发送消息
io.sockets.socket(socketid).emit('String', data); // 监听客户端发送的信息
socket.on('String',function(data)); // 给该socket的客户端发送消息
socket.emit('String', data);
客户端socket.on()监听的事件
  • connect:连接成功
  • connecting:正在连接
  • disconnect:断开连接
  • connect_failed:连接失败
  • error:错误发生,并且无法被其他事件类型所处理
  • message:同服务器端message事件
  • anything:同服务器端anything事件
  • reconnect_failed:重连失败
  • reconnect:成功重连
  • reconnecting:正在重连

例:
socket.on(“String”,function(data)) 监听服务端发送的消息 Sting参数与服务端emit第一个参数相同

// 监听服务信息
socket.on('msg',function(data){
socket.emit('msg', {rp:"fine,thank you"}); //向服务器发送消息
console.log(data);
}); // 监听socket断开与重连
socket.on('disconnect', function() {
console.log("与服务其断开");
}); socket.on('reconnect', function() {
console.log("重新连接到服务器");
});

Socket.io 入门 - Renyi的博客的更多相关文章

  1. socket.io入门整理教程

    socket.io入门整理  发布于 5 年前  作者 dtrex  124983 次浏览  最后一次编辑是 1 年前 我自己在用socket.io开发,对官方网站上的文档,进行简单的整理,然后自己写 ...

  2. yii2实战教程之新手入门指南-简单博客管理系统

    作者:白狼 出处:http://www.manks.top/document/easy_blog_manage_system.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文 ...

  3. Cocos Creator - 入门教程项目 - 博客频道 - CSDN.NET

    3457 教程司令部 [20160418] | Cocos Creator - CocoaChina CocoaChina_让移动开发更简单cocoachina.com 2033 Cocos Crea ...

  4. Node.js、Express、Socket.io 入门

    前言 周末断断续续的写了第一个socket.io Demo.初次接触socket.io是从其官网看到的,看着get started做了一遍,根据官网的Demo能提供简单的服务端和客户端通讯. 这个De ...

  5. socket.io 入门教程

    转载自:http://deadhorse.me/nodejs/2011/12/29/socket.io_induction.html socket.io socket.io是一个以实现跨浏览器.跨平台 ...

  6. 转载:socket.io 入门

    原文链接:http://cnodejs.org/topic/50a1fcc7637ffa4155b5a264 我自己在用socket.io开发,对官方网站上的文档,进行简单的整理,然后自己写了一个简单 ...

  7. socket.io 入门篇(三)

    本文原文地址:https://www.limitcode.com/detail/5926e3a056fba70278bf2044.html 前言 上篇我们介绍了 socket.io 中room的概念和 ...

  8. socket.io 入门篇(二)

    本文原文地址:https://www.limitcode.com/detail/5922f1ccb1d4fe074099d9cd.html 前言 上篇我们介绍了 socket.io 基本使用方法,本篇 ...

  9. socket.io 入门篇(一)

    本文原文地址:https://www.limitcode.com/detail/591b114bb1d4fe074099d9c9.html 前言 本篇介绍使用node.js模块组件socket.io实 ...

随机推荐

  1. HTML引入文件/虚拟目录/绝对路径与相对路径

    此篇引见 相对路径和绝对路径的区别 1.绝对路径 使用方法:而绝对路径可以使用“\”或“/”字符作为目录的分隔字符 绝对路径是指文件在硬盘上真正存在的路径.例如 <body backround= ...

  2. Python模块——hashlib

    简介 hashlib模块是用于对字符串进行加密,其可以把任意长度的数据转换为一个长度固定的数据串,且这种加密是不可逆的,故这种加密方式的安全性都很高.hash本质是一个函数,该模块提供了许多不同的加密 ...

  3. mysql SQL优化琐记之索引

    equal最好了,其次in,最后是range !=  <>  这类非操作尽量不用,它会转换为range.>都是范围查询 复合索引有左匹配原则,(clo_a,clo_b)相当建立了两个 ...

  4. mysql 数据库保存\n 微信分享时不能换行

    主要因为保存的是\n 但是查询出来是\\n 所以需要把\\n替换为\n即可(不转换的话不会换行并且显示\n)

  5. 共享出行疯狂并购背后,打造全交通链条才能让Uber们更快乐

    一直以来,携程.滴滴.摩拜等与出行相关的企业总是会因各种负面问题而饱受诟病.但不能否认的是它们极大地提升了出行便利性,让人们的出行更有效率,也更加方便.而与此同时,Uber.Lyft.滴滴等共享打车企 ...

  6. 1年6亿美元!Uber小费功能或引行业变革

    当一个行业由稚嫩走向成熟,必然要在大方向上面对两个选择--一是继续在行业内深挖,二是不断向外围扩张.就像电商行业原本只是纯粹的交易中介形态,现在既不断深挖垂直电商新模式,又继续拓展新业务试图玩转跨界. ...

  7. 二十六、linux邮件服务器

    1.安装: yum install -y sendmail 因为是最小安装,需要包没有安装 yum  install -y  mailx 2.日志:/var/log/maillog 3.启动:/etc ...

  8. 电影画面赏析_唐顿庄园S01E01

    唐顿庄园S01E01 1. 2. 3. 4. 5. 6. 7. 8.

  9. python语法基础-并发编程-协程-长期维护

    ###############    协程    ############## # 协程 # 小知识点, # 协程和进程和线程一样都是实现并发的手段, # 开启一个线程,创建一个线程,还是需要开销, ...

  10. Eclipse 快捷键(mac)

    Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Command + Option + ↓:复制当前行到 ...