zoukankan      html  css  js  c++  java
  • EasyDSS高性能RTMP/FLV/HLS(m3u8)/RTSP流媒体服务器技术的HTTP QueryString URL的C++实现方案

    EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息

    比如 http://ip:port/action?a=1&b=2&c=3

    我们需要知道对应的a、b、c的值

    这里我们实现了简单的query url,能满足一般要求

    后面会实现一个完善的URI解析类

    to_lower 辅助函数,C++中没有 string 的转换大小写函数

    inline void to_lower(std::string& str)
    {
    	for (int i = 0; i <str.size(); i++)
    		str[i] = tolower(str[i]);
    }
    

    query_url函数,简单实现

    std::map<std::string, std::string> query_url(const std::string& url)
    {
    	std::string keyval, key, val;
    	//将参数以std::map的方式返回
    	std::map<std::string, std::string> params;
    	std::istringstream issUrl(url);
    	//从issUrl中使用分隔符`&`提取
    	while (std::getline(issUrl, keyval, '&'))
    	{
    		std::istringstream iss(keyval);
    		//再以`=`分隔符获取key和value
    		if (std::getline(std::getline(iss, key, '='), val))
    		{
    			to_lower(key);
    			params[key] = val;
    		}
    	}
    
    	return params;
    }
    

    当然,最应该使用的应该是 std::map<string, any>,后续不断改进

    关于EasyDSS流媒体服务器

    easydss流媒体解决方案是由安徽旭帆信息科技有限公司自主研发的一套集流媒体点播、转码、管理、直播、录像、检索、时移回看于一体的一套完整的商用流媒体解决方案。安徽旭帆信息科技有限公司一直致力于流媒体音视频领域的科技研发,其建立和维护的easydarwin开源项目自2012年起发展至今,凭借多年在流媒体音视频领域的技术经验积累,目前已经发展成为行业技术领先、经验丰富的流媒体研发及技术服务团队。而easydss正是由easydarwin项目的多年积累而全新研发的一套商用的、功能强大的高性能流媒体解决方案。
    详情可访问easydss官网:http://www.easydss.com

    EasyDSS

  • 相关阅读:
    企业微信应用授权
    exec存储过程示例
    jquery判断对象是否存在
    IScroll5要防止重复加载
    transitionEnd不起作用解决方法
    微信接口 output {"errMsg":"translateVoice:fail, the permission value is offline verifying"}
    javascript保留两位小数
    html取消回车刷新提交
    企业微信后台登录
    企业微信开启开发者工具
  • 原文地址:https://www.cnblogs.com/babosa/p/11123991.html
Copyright © 2011-2022 走看看