Socket.IO参考手册
指南 | Guides
Server API
Server
调用require('socket.io')。
Server()
创建一个新的Server。使用 和 不使用new:
var io = require('socket.io')();
// or
var Server = require('socket.io');
var io = new Server();
Server(opts:Object)
或者,Server构造函数的第一个或第二个参数(见下文)可以是一个选项对象。
支持以下选项:
-
serveClient设置 Server#serveClient()值 -
path设置 Server#path()值
传递给socket.io的选项总是传递给engine.io Server被创建的选项。请参阅engine.io 选项。
Server(srv:http#Server, opts:Object)
创建一个新的Server并附加到给定的srv。可选opts可以传递。
Server(port:Number, opts:Object)
将socket.io绑定到一个新的http.Server侦听port。
Server#serveClient(v:Boolean):Server
如果v是true,连接的服务器(请参阅Server#attach)将担任客户端文件。默认为true。
attach调用此方法后无效。
// pass a server and the `serveClient` option
var io = require('socket.io')(http, { serveClient: false });
// or pass no server and then you can call the method
var io = require('socket.io')();
io.serveClient(false);
io.attach(http);
If no arguments are supplied this method returns the current value.
Server#path(v:String):Server
设置v为提供engine.io静态文件的路径。默认为/socket.io。
如果未提供参数,则此方法返回当前值。
Server#adapter(v:Adapter):Server
设置v。默认为Adapter基于内存的socket.io 提供的实例。请参阅socket.io-适配器。
如果未提供参数,则此方法返回当前值。
Server#origins(v:String):Server
设置允许v的来源。默认允许任何来源。
如果未提供参数,则此方法返回当前值。
Server#sockets:Namespace
default(/)命名空间。
Server#attach(srv:http#Server, opts:Object):Server
使用提供的(可选)附加Server到engine.io实例。srvopts
Server#attach(port:Number, opts:Object):Server
附加Server到port与给定opts(可选)绑定的engine.io实例。
Server#listen
同义词Server#attach。
Server#bind(srv:engine#Server):Server
仅限高级使用。将服务器绑定到特定的engine.io Server(或兼容的API)实例。
Server#onconnection(socket:engine#Socket):Server
仅限高级使用。socket.io从传入的engine.io(或兼容的API)创建一个新的客户端socket。
Server#of(nsp:String):Namespace
Namespace通过其路径名标识符初始化并检索给定nsp。
如果命名空间已经初始化,它会马上返回。
Server#emit
向所有连接的客户端发出事件。以下两个是等效的:
var io = require('socket.io')();
io.sockets.emit('an event sent to all connected clients');
io.emit('an event sent to all connected clients');
有关其他可用方法,请参见Namespace下文。
Server#use
见Namespace#use下文:
命名空间
表示在由路径名标识的给定范围下连接的套接字池(例如:)/chat。
默认情况下,客户端始终连接到/。
Events
-
connection/connect. Fired upon a connection. Parameters:
- `Socket` the incoming socket.
Namespace#name:String
名称空间标识符属性。
Namespace#connected:Object
Socket连接到此索引的命名空间的哈希对象id。
Namespace#use(fn:Function):Namespace
注册一个中间件,该中间件是一个函数,可以为每个入口执行Socket并作为参数接收套接字,还可以选择将执行延迟到下一个注册的中间件。
var io = require('socket.io')();
io.use(function(socket, next){
if (socket.request.headers.cookie) return next();
next(new Error('Authentication error'));
});
传递给中间件回调的错误将作为特殊error数据包发送给客户端。
Socket
Socket是与浏览器客户端进行交互的基础类。 Socket属于某个Namespace(默认/)并使用底层Client进行通信。
Socket#rooms:Array
识别此socket所在命名空间的字符串列表。
Socket#client:Client
对基础Client对象的引用。
Socket#conn:Socket
对解除Client传输连接(engine.io Socket对象)的引用。
Socket#request:Request
一个getter代理,用于将引用返回给request源自底层engine.io的引用Client。用于访问诸如Cookieor的请求标头User-Agent。
Socket#id:String
套接字会话的唯一标识符,来自底层Client。
Socket#emit(name:String, …):Socket
向由该字符串标识的套接字发出事件name。任何其他参数都可以包含在内。
所有数据结构都受支持,其中包括Buffer。JavaScript函数不能被序列化/反序列化。
var io = require('socket.io')();
io.on('connection', function(socket){
socket.emit('an event', { some: 'data' });
});
Socket#join(name:String, fn:Function):Socket
将套接字添加到room,并可选择触发fn带err签名的回调(如果有的话)。
套接字自动成为使用其会话标识标识的会议室的成员(请参阅参考资料Socket#id)。
加入会议室的机制由Adapter已配置的会话处理(见Server#adapter上文),默认为socket.io-适配器。
Socket#leave(name:String, fn:Function):Socket
从room中删除套接字,并可选择触发fn带err签名的回调(如果有的话)。
roomt断开后会自动离开。
离开room的机制由Adapter已经配置的(见Server#adapter上面)处理,默认为socket.io-适配器。
Socket#to(room:String):Socket
Socket#in(room:String):Socket
为后续事件激活设置一个修饰符,该事件将只被广播到已加入给定的套接字room。
要激活到多个room,您可以to多次调用。
var io = require('socket.io')();
io.on('connection', function(socket){
socket.to('others').emit('an event', { some: 'data' });
});
Client
所述Client类表示输入的传输(engine.io)连接。A Client可以与许多Socket属于不同Namespaces的多路复用相关联。
Client#conn
对底层engine.io Socket连接的引用。
Client#request
一个getter代理,用于将引用返回给request发起engine.io连接的引用。用于访问诸如Cookieor的请求标头User-Agent。
指南 | Guides相关
Socket.IO 是一个面向实时 web 应用的 JavaScript 库。它使得服务器和客户端之间实时双向的通信成为可能。
| 主页 | http://socket.io/ |
| 源码 | https://github.com/socketio/socket.io |
| 发布版本 | 1.4.5 |
加载中,请稍侯......