<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[luiio的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/luiio</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; luiio]]></copyright><item><title><![CDATA[flv.js无法在同一浏览器并行六路以上的问题（简单且有效）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/119749914</link><guid>https://blog.youkuaiyun.com/luiio/article/details/119749914</guid><author>luiio</author><pubDate>Tue, 17 Aug 2021 10:20:42 +0800</pubDate><description><![CDATA[因为nginx-rtmp-flv模块使用的不是http2.0，故大部分浏览器和nginx交互的时候，会因为并发数量的限制，导致最多只能六路并行。

也就是flv.js从同一个端口只能获取六路视频，多了就会交互失败。此时有多个解决方案：

1.有说联系nginx-rtmp-flv的作者，使用商业版带有http2.0。

2.有说修改浏览器配置，但是各个浏览器不是都可以修改的。

3.有说使用websocket替代http的，但是既有的方案未必支持更改。

4.有说使用反向代理，做几个新端口，代理一下原先的端口]]></description><category></category></item><item><title><![CDATA[nacos服务端配套使用监控，使用prometheus和Grafana监控注意事项（实践贴，非复制粘贴。换电脑以后照贴成功搭建）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/119379497</link><guid>https://blog.youkuaiyun.com/luiio/article/details/119379497</guid><author>luiio</author><pubDate>Wed, 04 Aug 2021 13:45:37 +0800</pubDate><description><![CDATA[参考官方文档：https://nacos.io/zh-cn/docs/monitor-guide.html

Grafana文档：https://www.bookstack.cn/read/grafana-v6.2/install.md

Grafana官网：https://grafana.com/grafana/



1.搭建nacos集群，并暴露metrics数据

重启即可，按照官方文档操作，需要验证一下是否成功。

需要打开：

http://192.168.0.223:8850/nacos/ac]]></description><category></category></item><item><title><![CDATA[mfc-ocx控件的fire自定义事件无法传递给ie的解决方法]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/118517040</link><guid>https://blog.youkuaiyun.com/luiio/article/details/118517040</guid><author>luiio</author><pubDate>Tue, 06 Jul 2021 11:46:56 +0800</pubDate><description><![CDATA[1.项目中使用了ocx封装c++接口，除了属性和方法，还自定义了几个fire事件。但是奇怪的是，使用TSTCON32工具时，一切正常，但是使用html+js网页时，事件只能接收到最后一个。

2.介绍一下背景，我用ocx封装的对外接口，我本身的sdk是异步接口，也就是每个接口调用完了，有一个异步的导出类，把结果返回来，我用回调函数将这些数据通过ocx的fire自定义事件传到外部去。

3.奇怪的是，我所有的异步事件中，只有一个最后的退出通知接口可以被网页接收到。因为大家都说因为js不支持多线程，所以会导致主]]></description><category></category></item><item><title><![CDATA[四、redis集群，哨兵模式]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/118190768</link><guid>https://blog.youkuaiyun.com/luiio/article/details/118190768</guid><author>luiio</author><pubDate>Thu, 24 Jun 2021 17:25:10 +0800</pubDate><description><![CDATA[redis如果只有一个服务，当服务出现问题时，就无法使用了。使用集群，就可以避免这类问题。哨兵模式是集群的一种，目前比较流行的方式。

哨兵模式的机制就是，一个redis服务（master或者slaver）启动时，随之启动一个哨兵（sentinel）。这个哨兵就用来监测这个服务的。

集群中所有的数据服务（master或者slaver）互相通信，共享数据，但是只有一个主服务master，其他都是从服务slave。哨兵们也互相通信，用来交流各个slaver和master是否正常。当master异常时，哨兵会选]]></description><category></category></item><item><title><![CDATA[三、redis的控制台汉字问题]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/118189913</link><guid>https://blog.youkuaiyun.com/luiio/article/details/118189913</guid><author>luiio</author><pubDate>Thu, 24 Jun 2021 15:49:34 +0800</pubDate><description><![CDATA[编译客户端时字符集选未设置


注意启动时使用


redis-cli.exe -h IP -p 端口 --raw


此时可以用汉字，只是输入的时候显示的不对，但是可以正常用，不至于崩溃。



]]></description><category></category></item><item><title><![CDATA[二、redis环境部署，linux版服务，以及linux版c++客户端hiredis]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/118188847</link><guid>https://blog.youkuaiyun.com/luiio/article/details/118188847</guid><author>luiio</author><pubDate>Thu, 24 Jun 2021 15:36:37 +0800</pubDate><description><![CDATA[linux版本的资料比windows多很多。操作也相对比较容易

以centos7为例，安装和编译redis。

1.安装redis

https://redis.io/download

官网给出了安装方式
$ wget https://download.redis.io/releases/redis-6.2.4.tar.gz
$ tar xzf redis-6.2.4.tar.gz
$ cd redis-6.2.4
$ make
$ make install

然后启动即可

$ redis-serve]]></description><category></category></item><item><title><![CDATA[一、redis环境部署，windows版服务，以及windos版c++客户端hiredis]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/118187529</link><guid>https://blog.youkuaiyun.com/luiio/article/details/118187529</guid><author>luiio</author><pubDate>Thu, 24 Jun 2021 15:10:10 +0800</pubDate><description><![CDATA[1.首先介绍windows下的环境安装，

redis支持32和64位的。下载安装包和源码。

msi版本的用来直接安装redis服务，在windows服务中操作开关。

下载地址：https://github.com/MSOpenTech/redis/releases

server版：



exe版：（忽略其中的报错，这是因为集群没有启动全，单个redis已经成功启动）

这个版本可以通过编译，或者拿msi安装以后安装文件夹获取文件，都可以。





2.配置环境变量，path中添加



3.此时]]></description><category></category></item><item><title><![CDATA[nginx1.21在windows下vs交叉编译rtmp模块]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/117359807</link><guid>https://blog.youkuaiyun.com/luiio/article/details/117359807</guid><author>luiio</author><pubDate>Fri, 28 May 2021 13:22:41 +0800</pubDate><description><![CDATA[最近需要自己编译windows版本的nginx，为研究源码做个准备。找了一大堆资料，看的脑袋疼，交叉编译真是比较麻烦，比linux麻烦多了，整了几个小时才完成。。

感谢前辈们的参考资料，但是应该大家碰到的问题不完全一致，可能和机器以及下载的版本有关。有些坑踩完了后边估计可能忘了，极力回想了一下补了一篇文章。欢迎补充。

1.下载并安装msys2，用于生成makefile文件

2.电脑需要有vs环境，使用它的nmake编译，我用的vs2017

3.下载nginx-rtmp相关的依赖，三个包准备好Open]]></description><category></category></item><item><title><![CDATA[c++11之特性之std::function（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/113099893</link><guid>https://blog.youkuaiyun.com/luiio/article/details/113099893</guid><author>luiio</author><pubDate>Mon, 25 Jan 2021 13:56:37 +0800</pubDate><description><![CDATA[std::function和std::bind可以让标准函数的使用更方便，也可以实现延迟求值。

1.可调用对象

1.1函数指针

1.2具有operator()成员函数的类对象（仿函数，重载()符号类的对象）

1.3可以被转换为函数指针的类对象

1.4类成员函数指针，类成员指针


void func(void)
{
    ...
}

struct Foo
{
    void operator() (void)
    {
        ...
    }
}；

struct Eoo
{
]]></description><category></category></item><item><title><![CDATA[c++11之特性 基于范围的for循环（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/113093069</link><guid>https://blog.youkuaiyun.com/luiio/article/details/113093069</guid><author>luiio</author><pubDate>Sun, 24 Jan 2021 17:01:31 +0800</pubDate><description><![CDATA[1.引出：

不用给出容器的首尾，不基于范围来循环。


std::vector&lt;int&gt; vecMy;
// 传统写法
for(auto n = vecMy.begin(); n!= vecMy.end(); ++ n)
{
    ...
}
// algorithm中写法
void do_count(int n)
{
    ...
}
foreach(vecMy.begin(), vecMy.end(), do_count);
// 新写法 ， const 和 &amp;可以达到无损遍历]]></description><category></category></item><item><title><![CDATA[c++11之特性 模板细节改造（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/113092476</link><guid>https://blog.youkuaiyun.com/luiio/article/details/113092476</guid><author>luiio</author><pubDate>Sun, 24 Jan 2021 16:31:47 +0800</pubDate><description><![CDATA[1. 模板编程的&gt;&gt; 不需要再加空格了，不会和右移操作符发生二义性。

2.使用using可以替代typename，可以实现重定义一个模板。typename无法实现。

using重定义的模板，不是类模板，也不是函数模板，而是一个模板别名。

3.除了支持类模板的默认参数以外，现在也支持函数模板的默认模板参数。

这个默认参数可以是类型，可以是值
...]]></description><category></category></item><item><title><![CDATA[c++11之特性了解decltype（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/113086988</link><guid>https://blog.youkuaiyun.com/luiio/article/details/113086988</guid><author>luiio</author><pubDate>Sun, 24 Jan 2021 16:20:05 +0800</pubDate><description><![CDATA[1.定义

auto关键字要求必须初始化，编译器才能推到出变量类型。

decltype关键字，用于编译时推导一个表达式的类型。

2.语法格式：

decltype(expression)

类似于sizeof运算符，在编译器完成的类型推导，不会计算表达式的值。


int x = 0;
decltype(x) y = 1;      // y -&gt; int
decltype(x+y) z = 0;    // z -&gt; int

const int &amp; i = x;
decltype]]></description><category></category></item><item><title><![CDATA[c++11之特性了解auto（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/113007752</link><guid>https://blog.youkuaiyun.com/luiio/article/details/113007752</guid><author>luiio</author><pubDate>Fri, 22 Jan 2021 23:57:14 +0800</pubDate><description><![CDATA[1.考虑到auto在c++中使用很少，在c++11中，auto关键字不再表示存储类型指示符（static int 和auto int是相对的）。而改成了一个类型指示符，用于编译器自动推导变量类型。

2.

2.1auto可以直接推导出指针

2.2可以使用cv限定符（const、volatile）

2.3表达式带有cv限定符时，会丢弃cv限定符。

2.4auto和引用或者指针结合时，将保留cv限定符属性。


const auto e = 0;
auto f = e;            // f.]]></description><category></category></item><item><title><![CDATA[c++11之特性了解std::bind（绑定器）（书：深入应用c++11）]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/112933804</link><guid>https://blog.youkuaiyun.com/luiio/article/details/112933804</guid><author>luiio</author><pubDate>Thu, 21 Jan 2021 14:16:56 +0800</pubDate><description><![CDATA[1.头文件&lt;functional&gt;

2.定义：用来将可调用对象与其参数一起进行绑定，绑定后的结果可以使用std::function进行保存，并延迟调用到任何我们需要的时候。

3.理解：

1）将可调用对象与其参数一起绑定成一个仿函数。

2）可以将多参数可调用对象降维，即参数削减或者随意调整位置和顺序后灵活使用。

4.举例

4.1基本调用


#include &lt;iostream&gt;
#include &lt;functional&gt;

void call_when_eve]]></description><category></category></item><item><title><![CDATA[c++11之特性了解(待完善)]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/112665013</link><guid>https://blog.youkuaiyun.com/luiio/article/details/112665013</guid><author>luiio</author><pubDate>Fri, 15 Jan 2021 14:19:12 +0800</pubDate><description><![CDATA[1.使用emplace_back() 替代push_back()

2.std::unique_lock与std::lock_guard区别，条件变量需要该类型的锁作为参数（此时必须使用unique_lock）

https://blog.youkuaiyun.com/guotianqing/article/details/104002449

3.c++新特性之std::atomic，不使用锁实现互斥，单个int和bool使用方便

https://blog.youkuaiyun.com/delongwang520/articl]]></description><category></category></item><item><title><![CDATA[计算机英语单词整理之c/c++]]></title><link>https://blog.youkuaiyun.com/luiio/article/details/111638371</link><guid>https://blog.youkuaiyun.com/luiio/article/details/111638371</guid><author>luiio</author><pubDate>Mon, 28 Dec 2020 13:06:45 +0800</pubDate><description><![CDATA[c/c++常用关键字读音

最近整理代码，想起来英语的问题，想从头整理一下开发中常用的单词，不要日后接触到大佬的时候，丢了颜面。

对一些英文文档也有扫清障碍的作用。

方向1：
c+/c++基础



基础关键字

单词
			英音
			美音
		auto
			/ˈɔːtoʊ/
			/ˈɔːtoʊ/
		break
			/breɪk/
			/breɪk/
		case
			/keɪs/
			/keɪs/
		char
			/tʃɑːr/
			/tʃɑːr/
		co...]]></description><category></category></item></channel></rss>