当前位置: 首页 > wzjs >正文

供应邢台wap网站建设网络营销有什么岗位

供应邢台wap网站建设,网络营销有什么岗位,网站建设服务器有哪些,做网站用什么语言开发参考: SSE协议 SSE技术详解:使用 HTTP 做服务端数据推送应用的技术 一句概扩 SSE可理解为:服务端和客户端建立连接之后双方均保持连接,但仅支持服务端向客户端推送数据。推送完毕之后关闭连接,无状态行。 下面是基于…

参考:
SSE协议
SSE技术详解:使用 HTTP 做服务端数据推送应用的技术

一句概扩

SSE可理解为:服务端和客户端建立连接之后双方均保持连接,但仅支持服务端向客户端推送数据。推送完毕之后关闭连接,无状态行。

下面是基于libhv实现的SSE

SSE server
int Handler::sse(const HttpContextPtr& ctx) {// SSEvent(message) every 1shv::setInterval(10000, [ctx](hv::TimerID timerID) {static int ncount = 0;if (ctx->writer->isConnected()) {char szTime[DATETIME_FMT_BUFLEN] = {0};datetime_t now = datetime_now();datetime_fmt(&now, szTime);ctx->writer->SSEvent(szTime);if (++ncount >= 10) {//hv::killTimer(timerID);ctx->writer->close();ncount = 0;}} else {hv::killTimer(timerID);}});return HTTP_STATUS_UNFINISHED;
}
SSE client
typedef std::function<void(const std::string& sid, const std::string& sevent, const std::string& sdata, const unsigned int retry_ms)> sse_msg_cb;
HV_INLINE int sse(http_method method, const char* url, const sse_msg_cb& msg_cb, const http_body& body = NoBody, const http_headers& headers = DefaultHeaders,const unsigned int timeout_s = -1) {hv::HttpClient cli;HttpRequest req;HttpResponse resp;req.url = url; //req.method = method;req.timeout = timeout_s; // 不超时if (&body != &NoBody) {req.body = body;}if (&headers != &DefaultHeaders) {req.headers = headers;}bool bstream = false;req.http_cb = [msg_cb, &bstream](HttpMessage* resp, http_parser_state state, const char* data, size_t size) {if (state == HP_HEADERS_COMPLETE) {if (resp->headers["Content-Type"] == "text/event-stream") {bstream = true;return 0;}}else if (state == HP_BODY) {/*binary body should check data*/// printf("%s", std::string(data, size).c_str());resp->body.append(data, size);if (!bstream) return 0;/*/n/n获取message*/size_t ifind = std::string::npos;while ((ifind = resp->body.find("\n\n")) != std::string::npos) {std::string msg = resp->body.substr(0, ifind + 2);resp->body.erase(0, ifind + 2);/*解析body,暂时不考虑多dataid:xxx\nevent:xxx\ndata:xxx\ndata:xxx\ndata:xxx\nretry:10000\n*/auto kvs = hv::splitKV(msg, '\n', ':');if (msg_cb && (kvs.count("id") || kvs.count("event") || kvs.count("data") || kvs.count("retry")))msg_cb(kvs.count("id") ? kvs["id"] : "", kvs.count("event") ? kvs["event"] : "", kvs.count("data") ? kvs["data"] : "",kvs.count("retry") ? atoi(kvs["retry"].c_str()) : 0);}}return 0;};return cli.send(&req, &resp);
}
测试Demo
 sse(HTTP_GET,"http://127.0.0.1:12900/sse", [](const std::string& sid, const std::string& sevent,const std::string& sdata, const unsigned int retry_ms) { printf("id:%s\r\nevent:%s\r\ndata:%s\r\nretry:%u\r\n\r\n",sid.c_str(),sevent.c_str(),sdata.c_str(),retry_ms);});

在这里插入图片描述

http://www.dtcms.com/wzjs/469358.html

相关文章:

  • 福田皇岗社区网站建设国内推广平台有哪些
  • 网站开发要会英语吗品牌推广与传播方案
  • 东莞企业网站建设制作如何让百度搜索到自己的网站
  • 厦门官方网站建设关键词云图
  • 公司网站如何注册上海高端网站定制
  • 开通网站的会计科目怎么做宁德市人力资源和社会保障局
  • 通州城乡建设委房管局官方网站谷歌关键词排名查询工具
  • 自己做的相册网站百度关键词快速排名
  • 深圳宝安区深圳网站建设 骏域网络怎么做公司网页
  • 网站开发总体功能设计杭州网络
  • iis添加网站建设中中国国家培训网官网入口
  • 做网站可以用海外空间吗济源网络推广
  • 个人建什么样的网站最佳磁力吧cili8
  • 成都网站建设 外包企业培训公司
  • 网站开发php技术seo矩阵培训
  • wordpress设置固定连接失败郑州seo技术外包
  • 杭州网站建设怎么样高级seo
  • 做网站找外包公司要要搞清楚什么seo上首页
  • 网站组成部分网络推广技巧
  • 做网站的技术难点小视频关键词汇总
  • 做网站代理好吗排名第一的手机清理软件
  • 网站做商城怎么建立网站
  • 网页图片下载器seo外链优化培训
  • 建设工程有限公司企业网站平台app开发制作
  • 代理机构做的网站找不到人了怎么办做博客的seo技巧
  • 自己做的宫崎骏动漫网站郑州做网站
  • 日本正能量不良网站直接进入湖南省人民政府
  • 网站上传不了图片不显示不出来重庆网站建设维护
  • 做网站logo的网站深圳网站搜索优化
  • 怎样做网站用dwcs6今日疫情最新情况