微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Wslay WebSocket 开发库

程序名称:Wslay

授权协议: MIT

操作系统: Linux

开发语言: C/C++

Wslay 介绍

Wslay 是一个用 C 语言实现的 WebSocket 开发库。实现了 RFC 6455 中描述的第 13 版本的协议。提供了基于事件的 API
和基于帧的底层 API。特别适合非堵塞的 reactor 模式风格应用。可在不同的事件中设置回调。Wslay 只支持 WebSocket
协议的数据传输部分,不执行 HTTP 的握手过程。

示例代码

ssize_t send_callback(wslay_event_context_ptr ctx,
                      const uint8_t *data, size_t len, void *user_data)
{
  struct Session *session = (struct Session*)user_data;
  ssize_t r;

  int sflags = 0;
#ifdef MSG_MORE
  if(flags & WSLAY_MSG_MORE) {
    sflags |= MSG_MORE;
  }
#endif // MSG_MORE
  while((r = send(session->fd, data, len, sflags)) == -1 && errno == EINTR);
  if(r == -1) {
    if(errno == EAGAIN || errno == EWOULDBLOCK) {
      wslay_event_set_error(ctx, WSLAY_ERR_WOULDBLOCK);
    } else {
      wslay_event_set_error(ctx, WSLAY_ERR_CALLBACK_FAILURE);
    }
  }
  return r;
}

Wslay 官网

http://wslay.sourceforge.net/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐