- 博客(21)
- 收藏
- 关注
原创 PJLIB的下载、编译
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-03-04 16:49:00 459
原创 PJLIB的基础使用(1)
**一、数据结构之循环链表的使用:**#include <stdio.h> #include <pjlib.h> #include <pj/types.h> // for pj_init. #define THIS_FILE "main.c" typedef struct MY_NODE { // This mu...
2020-03-04 16:48:51 385
原创 GRPC异步服务器和客户端
GRPC提拱了很多示例程序,可以访问下面的链接查阅:CPP例子代码编译PROTO文件proto文件如下:syntax = "proto3";package helloworld;option java_package = "com.pqtel.pqcloud.grpc";option java_outer_classname = "helloworld";service Gr...
2020-03-04 16:48:33 2140
原创 使用PJLIB库实现SSL加密的TCP服务器和客户端
附一个PJSIP库的基础介绍链接:http://www.zhimax.com/article/tcp/pjlib.htmlPJLIB的测试源码链接:https://trac.pjsip.org/repos/browser/pjproject/tags/2.9/pjlib/src?order=name#pjlib-test基于测试源码,自己动手写了一个SSL加密的TCP服务器和客户端。开发环...
2020-03-04 16:48:23 465
原创 CentOS7下Protobuf库下载、编译、安装与测试
Protobuf介绍Protobuf提供一种灵活、高效、自动序列化结构数据的机制,可以联想XML,但是比XML更小、更快、更简单。仅需要自定义一次所有的数据格式,然后用户就可以使用Protobuf编译器自动生成各种语言的源码,方便的读写用户自定义的格式化的数据。与语言无关,与平台无关,还可以在不破坏原数据格式的基础上,依据老的数据格式,更新现有的数据格式。Protobuf特点作用与XML、j...
2020-03-04 16:48:10 847
原创 PJLIB的基础使用(2)
五、队列ioqueue的使用**pjsip中的ioqueue 是一个异步的,可支持并发操作的队列。主要运用于socket收发消息。在不同的平台,它的底层实现是不同的。 有这么几种。1 .I/O Completion ports ( Windows NT/2000/XP)2 /dev/epoll (linux)3 select()下面我通过一个例子程序来说一下pj_ioqueue的创建 ...
2020-03-04 16:47:53 305
原创 CentOS7下安装gRPC for CPP
原文链接:http://blog.dreamlikes.cn/archives/555gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C...
2020-03-04 16:47:45 221
转载 gRPC 服务端创建和调用原理
RPC 入门1.1 RPC 框架原理1.2 业界主流的 RPC 框架1.3 gRPC 简介1.3.1 gRPC 概览1.3.2 gRPC 特点gRPC 服务端创建2.1 服务端创建业务代码2.2 服务端创建流程2.3 服务端 service 调用流程2.3.1 gRPC 请求消息接入2.3.2 gRPC 消息头和消息体处理2.3.3 内部的服务路由和调用2.3.4 响应...
2020-03-04 16:47:37 670
原创 GRPC基础介绍
详情参考:gRPC 官方文档中文版概述gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服...
2020-03-04 16:47:19 385
转载 gRPC 客户端创建和调用原理
gRPC 客户端创建流程1.1 背景1.2 业务代码示例1.3 RPC 调用流程1.3.1 客户端调用总体流程1.3.2 ManagedChannel 创建流程1.3.3 ClientCall 创建流程1.3.4 基于 Netty 的 HTTP/2 Client 创建流程1.3.5 HTTP/2 连接创建流程1.3.6 负载均衡策略1.3.7 RPC 请求消息发送流程1.3...
2020-03-04 16:47:08 789
转载 gRPC 线程模型分析
RPC 线程模型1.1 BIO 线程模型1.2 异步非阻塞线程模型1.3 RPC 性能三原则gRPC 线程模型分析2.1 服务端线程模型2.1.1 服务端线程模型概述2.1.2 I/O 通信线程模型2.1.3 服务调度线程模型2.2 客户端线程模型2.2.1 客户端线程模型概述2.2.2 I/O 通信线程模型2.2.3 客户端调用线程模型线程模型总结3.1 优点3....
2020-03-04 16:46:50 1316
转载 Protobuf消息设计原则
网络通信涉及到消息的定义,不管是使用二进制模式、xml、json等格式。消息都可以大体的分为 命令消息、请求消息、应答消息和指示消息4大消息类型。一般情况下每个消息还还有包含一个序列号和一个能够唯一区分类型类型的消息编号,编号可以使用字符串、整数或者枚举等。1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。我会为每个系统都定义一个MSG枚举。包含系统用到的所有消息的枚举...
2020-03-04 16:46:23 442 1
转载 gRPC 服务调用原理
常用的服务调用方式1.1 同步服务调用1.2 并行服务调用1.3 异步服务调用服务调用的一些误区和典型问题2.1 理解误区2.1.1 I/O 异步服务就是异步2.1.2 服务调用天生就是同步的2.1.3 异步服务调用性能更高2.2 Restful API 的潜在性能风险2.2.1 HTTP1.X 的性能问题2.2.2 异步非阻塞 I/O 的 HTTP 协议栈2.2.3 推...
2020-03-04 16:46:10 1367
转载 gRPC 安全性设计
RPC 调用安全策略1.1 严峻的安全形势1.2 敏感数据加密传输1.2.1 基于 SSL/TLS 的通道加密1.2.2 针对敏感数据的单独加密1.3 认证和鉴权1.3.1 身份认证1.3.2 权限管控1.4 数据完整性和一致性gRPC 安全机制2.1 SSL/TLS 认证2.1.1 SSL/TLS 工作原理2.1.2 HTTP/2 的 ALPN2.1.3 gRPC 的...
2020-03-04 16:46:00 2625
转载 gRPC 序列化机制
常用的序列化框架1.1 Java 默认的序列化机制1.2 Thrift 序列化框架1.3 MessagePack 序列化框架1.4 Protocol Buffers 序列化框架Protocol Buffers 介绍2.1 支持的数据结构2.1.1 标量值类型(基本数据类型)2.1.2 复杂数据类型2.2 IDL 文件定义2.3 代码生成2.4 序列化和反序列化接口调用2....
2020-03-04 16:45:51 3744
原创 GRPC的SSL安全实现
1.利用openssl生成密钥#!/bin/shopenssl genrsa -out server.key 2048openssl req -new -x509 -days 3650 \ -subj "/C=GB/L=China/O=grpc-server/CN=localhost" \ -key server.key -out server.crtopenssl g...
2020-03-04 16:45:23 1640
原创 GRPC多线程并发,实现一个服务端接收不同客户端连接
1.头文件#ifndef __GRPCSVR_H__#define __GRPCSVR_H__#include <memory>#include <iostream>#include <string>#include <thread>#include <pthread.h>#include <grpcpp/grpc...
2020-03-04 16:45:13 5936 2
原创 编译安装部分库文件
安装libuuid:sudo yum -y install libuuid-devel.x86_64安装 perl-5下载地址: https://www.cpan.org/src/README.htmlwget https://www.cpan.org/src/5.0/perl-5.28.0.tar.gztar -xzf perl-5.28.0.tar.gzcd perl-5.28...
2020-03-04 16:45:01 369
原创 FreeSwitch初步测试
一、防火墙设置Free Switch处于防火墙内,因此需要在防火墙上开启相关端口映射,否则无法接收到数据包.或者直接关掉防火墙。二、Freeswitch默认端口配置1 修改默认密码#默认是1234vi vars.xml#修改 <X-PRE-PROCESS cmd="set" data="default_password=1234"/> #为 <X-PRE-PR...
2020-03-04 16:44:48 598
转载 FreeSwitch安装
一 源码安装1.1 linux安装依赖 centos7yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-releaseyum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 ...
2020-03-04 16:44:36 354
原创 FreeSwitch编译添加新模块
区别源码位置与程序位置源码安装Free Switch后,目录/usr/local/src/freeswitch存放的是源码;目录/usr/local/freeswitch存放的是程序。如果要增加新的模块,需要在源码位置进行修改;如果只是简单地修改程序运行设置,在程序位置进行相应修改就可以了。编译添加mod_callcenter模块默认源码编译安装完成后,并没有安装callcenter模块。开...
2020-03-04 16:41:47 1507 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人