在线文档教程

Server API

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()值

传递给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

如果vtrue,连接的服务器(请参阅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

附加Serverport与给定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,并可选择触发fnerr签名的回调(如果有的话)。

套接字自动成为使用其会话标识标识的会议室的成员(请参阅参考资料Socket#id)。

加入会议室的机制由Adapter已配置的会话处理(见Server#adapter上文),默认为socket.io-适配器。

Socket#leave(name:String, fn:Function):Socket

room中删除套接字,并可选择触发fnerr签名的回调(如果有的话)。

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