acl  3.5.3.0
acl::WebSocketServlet类 参考abstract

#include <WebSocketServlet.hpp>

+ 类 acl::WebSocketServlet 继承关系图:
+ acl::WebSocketServlet 的协作图:

Public 成员函数

 WebSocketServlet (void)
 
 WebSocketServlet (socket_stream *stream, session *session)
 
 WebSocketServlet (socket_stream *stream, const char *memcache_addr="127.0.0.1:11211")
 
virtual ~WebSocketServlet (void)
 
bool doRun (void)
 
bool doRun (session &session, socket_stream *stream=NULL)
 
bool doRun (const char *memcached_addr, socket_stream *stream)
 
bool sendBinary (const char *buf, int len)
 
bool sendText (const char *text)
 
bool sendPong (const char *buffer=NULL)
 
bool sendPing (const char *buffer=NULL)
 
- Public 成员函数 继承自 acl::HttpServlet
 HttpServlet (socket_stream *stream, session *session)
 
 HttpServlet (socket_stream *stream, const char *memcache_addr="127.0.0.1|11211")
 
 HttpServlet (void)
 
virtual ~HttpServlet (void)=0
 
sessiongetSession (void) const
 
socket_streamgetStream (void) const
 
HttpServletsetLocalCharset (const char *charset)
 
HttpServletsetRwTimeout (int rw_timeout)
 
HttpServletsetParseBody (bool on)
 
HttpServletsetParseBodyLimit (int length)
 
bool start (void)
 

Protected 成员函数

virtual void onClose (void)
 
virtual bool onPing (unsigned long long payload_len, bool finish)=0
 
virtual bool onPong (unsigned long long payload_len, bool finish)=0
 
virtual bool onMessage (unsigned long long payload_len, bool text, bool finish)=0
 
int readPayload (void *buf, size_t size)
 
websocketget_websocket (void) const
 
- Protected 成员函数 继承自 acl::HttpServlet
virtual bool doGet (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doPost (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doPut (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doPatch (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doConnect (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doPurge (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doDelete (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doHead (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doOptions (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doPropfind (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doOther (HttpServletRequest &, HttpServletResponse &, const char *method)
 
virtual bool doUnknown (HttpServletRequest &, HttpServletResponse &)
 
virtual bool doError (HttpServletRequest &, HttpServletResponse &)
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

额外继承的成员函数

- Protected 属性 继承自 acl::HttpServlet
HttpServletRequestreq_
 
HttpServletResponseres_
 

详细描述

在文件 WebSocketServlet.hpp15 行定义.

构造及析构函数说明

◆ WebSocketServlet() [1/3]

acl::WebSocketServlet::WebSocketServlet ( void  )

◆ WebSocketServlet() [2/3]

acl::WebSocketServlet::WebSocketServlet ( socket_stream stream,
session session 
)

构造函数

参数
stream{socket_stream*} 当在 acl_master 服务器框架控制下 运行时,该参数必须非空;当在 apache 下以 CGI 方式运行时,该参数 设为 NULL;另外,该函数内部不会关闭流连接,应用应自行处理流对象 的关闭情况,这样可以方便与 acl_master 架构结合
session{session*} 每一个 HttpServlet 对象一个 session 对象

◆ WebSocketServlet() [3/3]

acl::WebSocketServlet::WebSocketServlet ( socket_stream stream,
const char *  memcache_addr = "127.0.0.1:11211" 
)

构造函数

参数
stream{socket_stream*} 当在 acl_master 服务器框架控制下 运行时,该参数必须非空;当在 apache 下以 CGI 方式运行时,该参数 设为 NULL;另外,该函数内部不会关闭流连接,应用应自行处理流对象 的关闭情况,这样可以方便与 acl_master 架构结合
memcache_addr{const char*}

◆ ~WebSocketServlet()

virtual acl::WebSocketServlet::~WebSocketServlet ( void  )
virtual

HttpServlet 对象开始运行,接收 HTTP 请求,并回调以下 doXXX 虚函数, 该函数首先会调用 start 过程,然后根据 start 的返回结果及请求/响应 对象是否要求保持长连接来决定是否需要与客户端保持长连接.

成员函数说明

◆ doRun() [1/3]

bool acl::WebSocketServlet::doRun ( void  )
virtual

重载 acl::HttpServlet .

◆ doRun() [2/3]

bool acl::WebSocketServlet::doRun ( session session,
socket_stream stream = NULL 
)
virtual

重载 acl::HttpServlet .

◆ doRun() [3/3]

bool acl::WebSocketServlet::doRun ( const char *  memcached_addr,
socket_stream stream 
)
virtual

重载 acl::HttpServlet .

◆ get_websocket()

websocket* acl::WebSocketServlet::get_websocket ( void  ) const
inlineprotected

返回 websocket 对象,如果返回 NULL 表示还未建立 websocket 连接

返回
{websocket*}

在文件 WebSocketServlet.hpp134 行定义.

135  {
136  return ws_;
137  }

◆ onClose()

virtual void acl::WebSocketServlet::onClose ( void  )
inlineprotectedvirtual

websocket 关闭消息回调

在文件 WebSocketServlet.hpp91 行定义.

91 {}

◆ onMessage()

virtual bool acl::WebSocketServlet::onMessage ( unsigned long long  payload_len,
bool  text,
bool  finish 
)
protectedpure virtual

websocket ping 消息回调.

参数
payload_len{unsigned long long} 消息数据总长度
text{bool } true 表示为文本数据, 否则是 二进制数据。
finish{bool} 本数据包是否最后一个
返回
{bool} false 断开连接。

◆ onPing()

virtual bool acl::WebSocketServlet::onPing ( unsigned long long  payload_len,
bool  finish 
)
protectedpure virtual

websocket ping 消息回调.

参数
payload_len{unsigned long long} 消息数据总长度
finish{bool} 本数据包是否最后一个
返回
{bool} false 断开连接。

◆ onPong()

virtual bool acl::WebSocketServlet::onPong ( unsigned long long  payload_len,
bool  finish 
)
protectedpure virtual

websocket pong 消息回调.

参数
payload_len{unsigned long long} 消息数据总长度
finish{bool} 本数据包是否最后一个
返回
{bool} false 断开连接。

◆ readPayload()

int acl::WebSocketServlet::readPayload ( void *  buf,
size_t  size 
)
protected

子类可以循环调用此方法获得数据帧的数据体,直至返回 <= 0 为止

参数
buf{size_t*} 数据缓冲区用来存放结果数据
size{size_t} buf 缓冲区大小
返回
{int} 读到的数据长度,分以下三种情形: 0: 表示数据帧正常读完 -1: 表示读出错 >0: 表示读到的数据,应再次调用本方法以便读余下的数据

◆ sendBinary()

bool acl::WebSocketServlet::sendBinary ( const char *  buf,
int  len 
)

发送二进制数据.

参数
buf{const char *} 发送的数据
len{int} buf 数据长度
返回
{bool} 错误 false, 否则 true

◆ sendPing()

bool acl::WebSocketServlet::sendPing ( const char *  buffer = NULL)

发送pong 消息.

参数
buffer{const char *} 发送的数据
返回
{bool} 错误 false, 否则 true

◆ sendPong()

bool acl::WebSocketServlet::sendPong ( const char *  buffer = NULL)

发送pong 消息.

参数
buffer{const char *} 发送的数据
返回
{bool} 错误 false, 否则 true

◆ sendText()

bool acl::WebSocketServlet::sendText ( const char *  text)

发送文本数据.

参数
text{const char *} 发送的数据
返回
{bool} 错误 false, 否则 true

该类的文档由以下文件生成: