socketio简单笔记-2
2017-02-26 00:00
169 查看
房间(频道)
// 加入房间 socket.join('some room'); // 离开房间 socket.leave('some room'); // 获取所有房间的信息 // key为房间名,value为房间名对应的socket ID数组 io.sockets.manager.rooms // 获取particular room中的客户端,返回所有在此房间的socket实例 io.sockets.clients('particular room') // 通过sid获取所有进入的房间 io.sockets.manager.roomClients[socket.id]
发送易变(volatile)的数据
volatile意思大概是说,当服务器发送数据时,客户端因为各种原因不能正常接收,比如网络问题、或者正处于长连接的建立连接阶段。此时会让我们的应用变得 suffer,那就需要考虑发送 volatile 数据。socket.volatile.emit('bieber tweet', tweet);
即使客户端没连线,一样可以这样发送,服务器会自动丢弃发送失败的数据。
获取cookies和header的方式
socket.request
socket.request指向http的request,所以可以获取cookies和header
中间件
var io = require('socket.io')(); io.on('connection', function(socket){ socket.use(function(packet, next){ if (packet.doge === true) return next(); next(new Error('Not a doge error')); }); });
socket.use可以注册一个中间件,那么任何发送来的包都会被中间件预先处理
如果next带上错误信息,那么就会直接返给clinet
否则可以进入下一步的处理
客户端建立一个socket连接
var socket = io("ws://103.31.201.154:5555");
客户端socket.on()监听的事件:
connect:连接成功connecting:正在连接
disconnect:断开连接
connect_failed:连接失败
error:错误发生,并且无法被其他事件类型所处理
message:同服务器端message事件
anything:同服务器端anything事件
reconnect_failed:重连失败
reconnect:成功重连
reconnecting:正在重连
当 第一次连接时,事件触发顺序为:connecting->connect;当失去连接时,事件触发顺序 为:disconnect->reconnecting(可能进行多 次)->connecting->reconnect->connect。
相关文章推荐
- socket.io简单笔记1
- Netty学习笔记14 使用Netty-SocketIO 实现简单聊天室程序
- socket简单创建web服务器之学习笔记
- Backbone.js 和socket.io学习笔记
- Android笔记——Socket通信实现简单聊天室
- Socket.IO for Unity 简要介绍和简单应用
- Java网络学习笔记1:用(Server)Socket编写简单的客户/服务器程序
- 简单的IO驱动学习笔记
- Socket.io官方聊天室DEMO的学习笔记
- android之简单的socket通信(笔记)
- Node.js笔记(三)路由和socket.io
- Node.JS、Socket.IO 的 SSL/TLS 双向认证笔记
- nodejs学习笔记 -- socket.io笔记
- 【Web后端笔记】基于Socket实现的简单Web服务器搭建
- Node.js+socket.io简单在线聊天
- 【Java基础学习笔记】Java中Socket+Swing设计简单通信
- 用socket.io实现WebSocket的一个简单例子
- Java nio 笔记:系统IO、缓冲区、流IO、socket通道
- 【网络编程笔记】简单的TCP协议 socket编程(C语言版服务器和客户端)
- nodejs+socketio+redis 简单消息推送实例(一)