aardio 文档

nnmsg 库模块帮助文档

nnmsg 成员列表

nanomsg消息通信组件 v1.1.2
该组件主要用于服务端开发,不支持vista以下的操作系统

nnmsg.eachIn(套接字数组,超时)

for(socket in nnmsg.eachIn({/*nnmsg.socket对象*/}) ){

nnmsg.eachInOut(套接字数组,超时)

for(socket,revents in nnmsg.eachInOut({/*nnmsg.socket对象*/}) ){

nnmsg.eachOut(套接字数组,超时)

for(socket in nnmsg.eachOut({/*nnmsg.socket对象*/}) ){

nnmsg.lasterr()

返回最后一次错误的错误信息,错误代码

nnmsg.lasterrno()

返回最后一次错误的错误代码

nnmsg.poll(套接字事件数组,超时)

nnmsg.poll( {   
    { fd = /*nnmsg.socket对象*/; events=1/*_NN_POLLIN*/}  
} )

nnmsg.socket()

返回对象:nnSocketObject

nnmsg.socket(protocol,domain)

创建套接字
protocol必须指定,
domain为可选参数,默认为_AF_SP

nnmsg.term()

关闭当前进程中的所有nanomsg套接字,解除所有阻塞执行的任务

nnmsg.version

nanomsg.dll 版本号,字符串

全局对象 成员列表

var str

socket.recv();

var str

socket.recv();

nnSocketObject 成员列表

nnSocketObject.bind("tcp://*:26666地址")

绑定
成功返回true,并设置端点ID到lastEndpointId

nnSocketObject.close()

关闭socket

nnSocketObject.connect("tcp://localhost:26666地址")

连接
成功返回true,并设置端点ID到lastEndpointId

nnSocketObject.device(socket对象)

创建路由设备在两个套接字间转发消息
此函数创建一个循环,直到返回错误代码

nnSocketObject.getStatistic( _NN_STAT )

返回统计信息,该数据仅有参考意义
成功则返回math.size64对象

nnSocketObject.getopt(选项,值,级别)

获取指定选项的值,
值如果是一个结构体,成功返回填充值的原结构体
值如果省略,则获取int类型的

级别参数可选,默认为_NN_SOL_SOCKET

nnSocketObject.lastEndpointId

最后一次成功bind或connect的端点ID
可用于shutdown函数的调用参数

nnSocketObject.protocol

当前套接字协议类型

nnSocketObject.recv()

接收符串消息
成功返回字符串

nnSocketObject.recv(1)

接收符串消息,消息未到达时不等待直接返回
接收符串消息
成功返回字符串

nnSocketObject.recvBuffer(缓冲区,长度)

接收消息帧
参数一可以是缓冲区、指针、结构体
如果是指针、结构体则必须指定长度
成功返回参数@1,以及接收长度

nnSocketObject.recvBuffer(缓冲区,长度,1)

接收消息帧,消息未到达时不等待直接返回
参数一可以是缓冲区、指针
如果是指针则必须指定长度
成功返回参数@1,以及接收长度

nnSocketObject.recvStruct(结构体)

接收结构体
成功返回参数@1,以及接收长度

nnSocketObject.recvStruct(结构体,1)

接收结构体,消息未到达时不等待直接返回
成功返回参数@1,以及接收长度

nnSocketObject.recvTable()

接收table对象
成功返回字符串

nnSocketObject.recvTable(1)

接收table对象,消息未到达时不等待直接返回
接收符串消息
成功返回字符串

nnSocketObject.send(字符串)

发送字符串消息\参数一可以是字符串或缓冲区,
其他参数可选

nnSocketObject.send(字符串,1)

发送符串消息,不等待直接返回\参数一可以是字符串或指针.
其他参数可选

nnSocketObject.sendBuffer(缓冲区,长度)

发送消息帧\参数一可以是缓冲区、字符串、指针、结构体
如果是指针、结构体则必须指定长度
成功返回发送长度

nnSocketObject.sendBuffer(缓冲区,长度,1)

发送消息帧,不等待直接返回\参数一可以是缓冲区、字符串、指针
如果是指针则必须指定长度
成功返回发送长度

nnSocketObject.sendStruct(结构体)

发送结构体
成功返回发送长度

nnSocketObject.sendStruct(结构体,1)

发送结构体,不等待直接返回
成功返回发送长度

nnSocketObject.sendTable(对象)

发送table对象\参数一可以是字符串或缓冲区,
其他参数可选

nnSocketObject.sendTable(对象,1)

发送table对象,不等待直接返回\参数一可以是字符串或指针.
其他参数可选

nnSocketObject.setopt(选项,值,级别)

值可以是数值,字符串,缓冲区,或者一个结构体对象
成功返回true

级别参数可选,默认为_NN_SOL_SOCKET

nnSocketObject.shutdown()

关闭连接
参数可选设置端点ID,如果无参数则取lastEndpointId的值作为参数

nnSocketObject.subscribe("字符串参数")

用于sub套接字设置订阅的主题前缀
如果为空则订阅所有主题

nnSocketObject.unsubscribe("字符串参数")

用于sub套接字取消订阅的主题前缀
如果为空则订阅所有主题

nnmsg.socket 成员列表

nnmsg.socket.bus()

创建消息总线(bus)套接字,
连接到消息总线的任何一个套接字发送消息,消息总线上的其他套接字都能收到,
这种模式只适合在局域网内使用
示意图
!nn_socket

nnmsg.socket.pair()

创建pair套接字,
服务端和客户端可以1对1的收发消息
示意图

返回对象:nnSocketObject

nnmsg.socket.pub()

创建pub类型套接字 - 即用于发布消息的服务端,
nsub/pub套接字结合使用可实现消息广播模式(Topics & Broadcast)
服务端只管发布,不管客户端是否连接,也不管是不是丢消息
但客户端连接上来以后就不会丢消息
示意图

返回对象:nnSocketObject

nnmsg.socket.pull()

创建pull类型套接字 - 即用于拉消息的客户端,
push/pull套接字结合使用可实现消息队列的扇出模式,
这是一个1对多的模式,服务端不能有多个,但客户端可以多个,
服务端或客户端不管谁先启动,都会等待对方连接,中间绝不会丢弃消息,
服务端只发不收,客户端只收不发,一个消息不会重复发给多个客户端
一般用于任务分派、负载均衡
下面官网示意图是指传输方式为单向管道(Pipeline)
并不是指此模型只1对1的,请注意区分,
官网示意图

返回对象:nnSocketObject

nnmsg.socket.push()

创建push类型套接字 - 即用于推送消息的服务端,
push/pull套接字结合使用可实现消息队列的扇出模式,
这是一个1对多的模式,服务端不能有多个,但客户端可以多个,
服务端或客户端不管谁先启动,都会等待对方连接,中间绝不会丢弃消息,
服务端只发不收,客户端只收不发,一个消息不会重复发给多个客户端
一般用于任务分派、负载均衡
下面官网示意图是指传输方式为单向管道(Pipeline)
并不是指此模型只1对1的,请注意区分,
官网示意图

返回对象:nnSocketObject

nnmsg.socket.rawbus()

创建原始消息总线(rawbus)套接字,
rawbus套接字不会发送消息给发送端
示意图
!nn_socket

nnmsg.socket.rep()

创建rep类型套接字 - 即用于应答消息的服务端,
一个服务端对应多个客户端,
先由req客户端发出请求,rep服务端收到请求后进行应答

返回对象:nnSocketObject

nnmsg.socket.req()

创建req类型套接字 - 即用于应答消息的客户端,
一个服务端对应多个客户端,
先由req客户端发出请求,rep服务端收到请求后进行应答

返回对象:nnSocketObject

nnmsg.socket.respondent()

创建respondent套接字 - 即用于发出回应调查的客户端
surveyor/respondent套接字结合使用可实现调查模式
示意图

返回对象:nnSocketObject

nnmsg.socket.sub()

创建sub类型套接字 - 即用于订阅消息的客户端,
sub/pub套接字结合使用可实现消息广播模式(Topics & Broadcast)
服务端只管发布,不管客户端是否连接,也不管是不是丢消息
但客户端连接上来以后就不会丢消息
示意图

返回对象:nnSocketObject

nnmsg.socket.surveyor()

创建surveyort套接字 - 即用于发出问询消息的服务端
surveyor/respondent套接字结合使用可实现调查模式
示意图

返回对象:nnSocketObject

自动完成常量

_AF_SP=1
_AF_SP_RAW=2
_NN_BUS=0x70
_NN_DOMAIN=0xC
_NN_DONTWAIT=1
_NN_EACCES=0x9523DD9
_NN_EADDRINUSE=0x9523DCD
_NN_EADDRNOTAVAIL=0x9523DCE
_NN_EAFNOSUPPORT=0x9523DD2
_NN_EAGAIN=0x9523DD4
_NN_EBADF=0x9523DD5
_NN_ECONNABORTED=0x9523DE0
_NN_ECONNREFUSED=0x9523DCF
_NN_ECONNRESET=0x9523DE1
_NN_EFAULT=0x9523DD8
_NN_EFSM=0x9523DFE
_NN_EHOSTUNREACH=0x9523DDC
_NN_EINPROGRESS=0x9523DD0
_NN_EINVAL=0x9523DD6
_NN_EISCONN=0x9523DE3
_NN_EMFILE=0x9523DD7
_NN_EMSGSIZE=0x9523DDE
_NN_ENETDOWN=0x9523DCC
_NN_ENETRESET=0x9523DDA
_NN_ENETUNREACH=0x9523DDB
_NN_ENOBUFS=0x9523DCB
_NN_ENOPROTOOPT=0x9523DE2
_NN_ENOTCONN=0x9523DDD
_NN_ENOTSOCK=0x9523DD1
_NN_ENOTSUP=0x9523DC9
_NN_EPROTO=0x9523DD3
_NN_EPROTONOSUPPORT=0x9523DCA
_NN_ETERM=0x9523DFD
_NN_ETIMEDOUT=0x9523DDF
_NN_HAUSNUMERO=0x9523DC8
_NN_INPROC=-1
_NN_IPC=-2
_NN_IPV4ONLY=0xE
_NN_LINGER=1
_NN_MAXTTL=0x11
_NN_NS_DOMAIN=2
_NN_NS_ERROR=0xB
_NN_NS_EVENT=0xD
_NN_NS_FLAG=0xA
_NN_NS_LIMIT=0xC
_NN_NS_NAMESPACE=0
_NN_NS_OPTION_LEVEL=5
_NN_NS_OPTION_TYPE=8
_NN_NS_OPTION_UNIT=9
_NN_NS_PROTOCOL=4
_NN_NS_SOCKET_OPTION=6
_NN_NS_STATISTIC=0xE
_NN_NS_TRANSPORT=3
_NN_NS_TRANSPORT_OPTION=7
_NN_NS_VERSION=1
_NN_PAIR=0x10
_NN_POLLIN=1
_NN_POLLOUT=2
_NN_PROTOCOL=0xD
_NN_PROTO_PAIR=1
_NN_PROTO_PIPELINE=5
_NN_PUB=0x20
_NN_PULL=0x51
_NN_PUSH=0x50
_NN_RCVBUF=3
_NN_RCVFD=0xB
_NN_RCVMAXSIZE=0x10
_NN_RCVPRIO=9
_NN_RCVTIMEO=5
_NN_RECONNECT_IVL=6
_NN_RECONNECT_IVL_MAX=7
_NN_REP=0x31
_NN_REQ=0x30
_NN_REQ_RESEND_IVL=1
_NN_RESPONDENT=0x63
_NN_SNDBUF=2
_NN_SNDFD=0xA
_NN_SNDPRIO=8
_NN_SNDTIMEO=4
_NN_SOCKADDR_MAX=0x80
_NN_SOCKET_NAME=0xF
_NN_SOL_SOCKET=0
_NN_STAT_ACCEPTED_CONNECTIONS=0x66
_NN_STAT_ACCEPT_ERRORS=0x6B
_NN_STAT_BIND_ERRORS=0x6A
_NN_STAT_BROKEN_CONNECTIONS=0x68
_NN_STAT_BYTES_RECEIVED=0x130
_NN_STAT_BYTES_SENT=0x12F
_NN_STAT_CONNECT_ERRORS=0x69
_NN_STAT_CURRENT_CONNECTIONS=0xC9
_NN_STAT_CURRENT_EP_ERRORS=0xCB
_NN_STAT_CURRENT_SND_PRIORITY=0x191
_NN_STAT_DROPPED_CONNECTIONS=0x67
_NN_STAT_ESTABLISHED_CONNECTIONS=0x65
_NN_STAT_INPROGRESS_CONNECTIONS=0xCA
_NN_STAT_MESSAGES_RECEIVED=0x12E
_NN_STAT_MESSAGES_SENT=0x12D
_NN_SUB=0x21
_NN_SUB_SUBSCRIBE=1
_NN_SUB_UNSUBSCRIBE=2
_NN_SURVEYOR=0x62
_NN_SURVEYOR_DEADLINE=1
_NN_TCP=-3
_NN_TCP_NODELAY=1
_NN_TYPE_INT=1
_NN_TYPE_NONE=0
_NN_TYPE_STR=2
_NN_UNIT_BOOLEAN=4
_NN_UNIT_BYTES=1
_NN_UNIT_COUNTER=6
_NN_UNIT_MESSAGES=5
_NN_UNIT_MILLISECONDS=2
_NN_UNIT_NONE=0
_NN_UNIT_PRIORITY=3
_NN_VERSION_AGE=0
_NN_VERSION_CURRENT=5
_NN_VERSION_REVISION=0
_NN_WS=-4
_NN_WS_MSG_TYPE=1
_NN_WS_MSG_TYPE_BINARY=2
_NN_WS_MSG_TYPE_TEXT=1

Markdown 格式