2019-08-30 17:03
⁄ 工业·编程
⁄ 共 3213字
WebSocket 是 HTML5 的一个引入注目的特性,它通常用于 Web 端,为构建实时的 Web 应用提供方便。WebSocket 是一个基于 TCP 的协议,它借助于 HTTP 请求,建立客户端与服务器端之间的双向通道,通道建立完成后,客户端和服务器端都可以通过这条通道方便地收发消息,因而 WebSocket 一向有着 “Web 的 TCP” 之称。
WebSocket 不是 JavaScript 的一个接口,而是一个定义良好的基于消息的协议。得益于不同平台对于 WebSocket 协议的...
WebSocket, 开源, 网络编程阅读全文
2019-08-29 15:53
⁄ 工业·编程
⁄ 共 6076字
本文对几种开源的流媒体服务器做对比。
1 概念
1.1 RTP
实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。
RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),...
开源, 比较, 流媒体阅读全文
2019-08-21 12:06
⁄ 工业·编程
⁄ 共 209字
流媒体解决方案 Live555 (C++)
流媒体平台框架 EasyDarwin (C++,国产精品)
实时流媒体播放服务器程序DarwinStreamingSrvr (C++)
Flash流媒体服务器 Red5 (Java)
流媒体服务器 Open Streaming Server (Java)
FMS流媒体服务器 (Adobe,收费的)
Wowza流媒体服务器(Java)
开源流媒体平台FreeCast(Java)
最后补充一个 Ngix+RTMP插件
开源, 流媒体阅读全文
2019-08-12 07:50
⁄ 工业·编程
⁄ 共 479字
针对GitHub上的几个几个C++ Restful库做了一个系统的对比:
Restful库
98%请求中的最大时间(越小越好)
每秒平均处理的请求数(越大越好)
Sample代码的行数
C++ : cpprestsdk / default JSON implementation
51
30.70
48
C++ : cpprestsdk / RapidJSON
44
47.06
47
C++ : restbed
7
224.18
39
C++ : pistache
6
319.99
40
PHP : Native implementation
10
146.95
14
表格中第二列和第三列是性能指标,第四...
REST, 开源, 框架阅读全文
2019-08-03 07:44
⁄ 工业·编程
⁄ 共 11523字
2. Poco日志的实现
2.1 日志模块应该实现的业务
在讨论日志的实现之前,先来聊一下日志模块应该实现那些业务。日志的业务说简单可以很简单,就是输出记录。说复杂也复杂,来看它的复杂性:
首先,日志的输出对象是不同的,有控制台输出,本地文件输出,网络文件输出,输出到系统日志等。假如是网络日志,日志库中其实还会包含网络模块,真是越来越复杂了。
第二,日志输出的格式和内容。不同用户关心的内容和喜欢的输出格式是不...
POCO, 开源, 源码阅读全文
2019-08-01 07:41
⁄ 工业·编程
⁄ 共 11958字
日志对于程序来说是非常重要的,特别是对一些大型程序而言。一旦程序被发布,在现场日志几乎是程序员唯一可以获取程序信息的手段。Poco作为一个框架类库,提供了非常多的日志种类供程序员选用。文章将分两个部分,对于Poco日志进行介绍。第一部分主要以翻译Poco文档为主,第二部分则探讨Poco日志的实现。
1. Poco库日志接口
1.1 总体介绍
Poco中的日志模块主要涉及下列...
POCO, 开源, 源码阅读全文
2019-07-31 07:00
⁄ 工业·编程
⁄ 共 25896字
本节主要介绍Thread类和ThreadLocal机制的使用方法以及实现原理,以及对ThreadPool线程池支持的简单了解
Thread类使用方法
在C++语言中,我们通过_beginThreadex或CreateThread来创建线程(最好使用前者,关于两者区别和线程基础知识可参见《Windows核心编程》),并且提供一个原型为void MyFunc(void pParam)入口函数来完成任务。在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自...
POCO, 开源, 源码阅读全文
2019-07-30 06:50
⁄ 工业·编程
⁄ 共 14626字
Foundation中的SharedLibrary实现跨平台的dll动态加载。具体使用方法和简介可见:ShareLibrary官方文档
SharedLibrary导出函数
SharedLibrary类的简单用法
通过SharedLibrary可以实现函数导出和类导出,函数导出是最简单的,Dll提供方除了函数需要使用extern "C"声明之外,和普通C++编写的dll并无区别,在官方文档的例子中,dll使用方代码也很简单:
// LibraryLoaderTest.cpp
#include "Poco/SharedLibrary.h&q...
POCO, 开源, 源码阅读全文
2019-06-06 17:41
⁄ 工业·编程
⁄ 共 12589字
Overview
main() –> startup() –> accept_request() –> execute_cgi()
Main senario:
Establish a web server step
建立连接– accept connection from client
Accept request – 读取一条HTTP报文
Handle request – 解释报文,采取行动
访问资源 – 访问报文中指定的资源
构建报文 – 创建带有正确HTTP首部的报文
发送响应 – give the response to client
记录事务处理过程 – record the step into log <– No such i...
tinyhttpd, 开源, 服务器阅读全文
2019-05-30 21:58
⁄ 工业·编程
⁄ 共 1343字
一:LinPhone是什么
LinPhone是一个网络电话或者IP语音电话(VOIP),是一款遵循GPL的开源的网络视频电话系统,其主要如下:
使用linphone,我们可以在互联网上随意的通信,通过语音、视频、即时文本消息。
linphone使用SIP协议,是一个标准的开源网络电话系统,你能将linphone与任何基于SIP的VoIP运营商连接起来,包括我们自己开发的免费的基于SIP的Audio/Video服务器。
LinPhone是一款自由软件(或者开源软件),你可以随意的...
LinPhone, 开源阅读全文