protobuf

配置环境步骤

时光怂恿深爱的人放手 提交于 2019-11-29 08:20:46
配置环境步骤: 1.确认python,没有python安装,有python更新到2.7 https://blog.csdn.net/furzoom/article/details/53898861 2.检查pip https://bootstrap.pypa.io/get-pip.py 利用命令 python get-pip.py安装 3.安装protobuf wget https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protobuf-python-3.5.1.tar.gz tar -zxvf protobuf-python-3.5.1.tar.gz cd protobuf-3.5.1 ./configure make make check make install cd python # 把protoc文件放到protobuf-3.5.1/src下面 # chmod +x protoc 执行 python setup.py install 3.利用pip安装python其他模块 python -m pip install apscheduler 到这station.py安装成功 python -m pip install speedtest-cli python -m pip install

js中应用protocol buffer

六月ゝ 毕业季﹏ 提交于 2019-11-29 05:44:17
前段时间公司项目需要用到protocol buffer数据传输协议,这是什么东西,根本没接触过,好好的json干嘛不用?怀着好奇心去了解学习,最后顺利运用。下面是一些是经验,希望能帮到一些人。 首先我们要知道什么是protocol buffer protocolbuffer (以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。 类似于XML,JSON这样的数据表示语言, ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,格式有点类似XML,可以自己定义数据格式,它是一种二进制格式允许你使用规范的语言定义一个模式。 基本语法 普通消息 message SearchRequest { required string query = 1; optional int32 page_number = 2; optional int32 result_per_page = 3; } 指定字段规则 所指定的消息字段修饰符必须是如下之一: ² required:一个格式良好的消息一定要含有1个这种字段。表示该值是必须要设置的; ² optional:消息格式中该字段可以有0个或1个值(不超过1个)。 ² repeated:在一个格式良好的消息中,这种字段可以重复任意多次(包括0次)。重复的值的顺序会被保留。表示该值可以重复

关于protobuf javascript的版本

孤街醉人 提交于 2019-11-29 05:44:05
转载请注明:http://blog.csdn.net/herm_lib/article/details/8580917 找了几个protobuf的js版本,官方推荐的两个: protobuf-js: http://code.google.com/p/protobuf-js/ protojs: http://github.com/sirikata/protojs 前一个半成品都算不上,肯定不能用;后一个很多特性也不支持。 不小心找到了google closure library的protobuf js版本。很奇怪,这个怎么没有作为官方推荐,以前没用过js,根本不知道有closure这个玩意。找得好辛苦。 closure protobuf js是以plugin的形式支持生成proto文件。 closure library: http://code.google.com/p/closure-library/downloads/list protobuf-plugin-closure : http://code.google.com/p/protobuf-plugin-closure/source/checkout js plugin须要我们自己编译,步骤如下: 1. 先下载整个protobuf,编译出protoc和各种lib库。 2. 生成两个支持的proto文件 ./protoc -I

在node中使用protobuf.js

自作多情 提交于 2019-11-29 05:42:13
本文基于 node 6.9.x 使用的 protobuf.js 的版本 5.0.2 因为 layabox 1.6.x 引擎自带的 protobuf.js 的版本是 5.0.1, 考虑两边兼容 , 所以我在 node 服务器端使用 5.0.2 我的目标用js同时实现手机端和服务器端,不用搞两套语言了,使用protobuf就不重造车轮了 首先下载安装 protobufjs https://github.com/dcodeIO/protobuf.js/tree/5.0.2 用npm命令 npm install protobufjs@5 安装完成后,就可以使用了protobuf.js了 为了实战 , 我这里使用了多个 proto 文件 放到工程的 proto 目录下面 msghead.proto --------------------------------------- 分割线开始 ------------------------------------------------------- syntax = "proto3"; package lz; enum MsgType { // 消息类型 Request = 0; // 请求类弄 Answer = 1; // 响应类型 Notice = 2; // 通知类型 NotMessage = 3; // 不是消息 } // 消息头

protobuf的AS3版本

有些话、适合烂在心里 提交于 2019-11-29 05:41:55
protobuf官方支持C++ Java和Python,其他都是第三方支持的。AS3版本官方推荐有两个: Action Script: http://code.google.com/p/protobuf-actionscript3/ Action Script: https://code.google.com/p/protoc-gen-as3/ 我们非常感谢两位作者的贡献,说出使用感受的目的是为了改进。 第一个早些时候提交的,很久不更新了,基本上是不能用的,enum/extension之类的不支持。我们主要看第二个链接的项目。 protoc-gen-as3总体上做得是蛮好的,遗憾的是有些不足。 1. 每个类前面加了dynamic 这个有时候很恶心,比如某个开发人员改了proto某个field的命名,程序里用原来旧的命名,编译是不会报错的。理想的情况是协议field名变了,编译肯定要报错了。 这个dynamic我们可以借助sed工具,把他给剃除掉。 2. 序列化和反序列化方法参数不足 比如,没有类似下面的方法,指定序列化的长度。 writeTo(bytes:BytesArray, len:int):void 反序列化的时候,也有类似的问题,没有一个指定输入数据的长度。 3. 没有获取消息的长度 最简单的消息包格式一般定义为:total_len + protobuf_msg

Laya 使用egret的protobuf

人走茶凉 提交于 2019-11-29 05:41:39
由于在微信小游戏上,不支持eval , new Function 等动态代码形式。所以在网上搜索了一些解决方案。 目前看到了egret架构师王泽的一个开源项目protobuf-egret。地址: 可以自己去看看 这个项目介绍使用的是egret的引擎,所以自己也写个laya使用时的记录 首先安装 npm install protobufjs@6.8.4 -g npm install @egret/protobuf -g 接着前往你安装nodejs的路径里面找到@egret\protobuf(这个是node需要安装的,这里不介绍) 例如:我自己的路径 E:\Program Files\nodejs\node_global\node_modules\@egret\protobuf\dist 将dist拷贝到你自己的项目protobuf文件夹存放,然后创建一个文件夹protofile用来存放proto文件 最后只需要打开终端 pb-egret generate 就可以直接生成了 然后将在 protobuf-library.js 和 protobuf-bundles.js 放到bin目录下的libs文件夹下在index.html引用 protobuf-library.js 和 protobuf-bundles.js (先 library.js 再 bundles.js ) 使用方法: 来源:

Swoole http server + yaf, swoole socket server + protobuf 等小结

隐身守侯 提交于 2019-11-29 01:12:09
拥抱swoole, 拥抱更好的php Swoole 是什么? Yaf 是什么? 接触swoole已经4年多了,一直没有好好静下心来学习。一直在做web端的应用,对网络协议和常驻内存型服务器一窍不通。一不留神swoole已经从小众扩展变成了流行框架,再不学习就完了 swoole + yaf swoole server 的角色 还是先用swoole来做一个http server。 常见的php web应用,通常是 apache+fast-cgi 或者 nginx + php-fpm 。这里以 php-fpm 为例,我们配置 nginx.conf 的时候都要配置一个 location ~*\.php$ { root /usr/share/nginx/html; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; ... } 主要是这句 fastcgi_pass 127.0.0.1:9000; 。就是说nginx 匹配到请求的uri是php后缀的时候,就把http request 转交给 127.0.0.1:9000 处理了。如果你查看或者修改过php-fpm的配置文件,就知道9000是php-fpm的默认端口。那么到这里我们就清楚了,nginx把php文件交给php-fpm处理,php

WARN util.NativeCodeLoader: 编译hadoop2.5

自古美人都是妖i 提交于 2019-11-28 20:06:40
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable put: `./in': No such file or directory 原因查找: [root@db96 hadoop]# file /usr/local/hadoop/lib/native/libhadoop.so.1.0.0 /usr/local/hadoop/lib/native/libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped 是32位的hadoop,安装在了64位的linux系统上。lib包编译环境不一样,所以不能使用。 悲剧了。 解决办法:重新编译hadoop. 1.安装maven,下载并解压。 http://maven.apache.org/download.cgi //下载对应的压缩包 apache-maven-3.2.1-bin.tar [root@db99 ~]# tar -zxvf apache-maven-3.2.1

进行API开发选gRPC还是HTTP APIs?

送分小仙女□ 提交于 2019-11-28 19:55:23
原文: 进行API开发选gRPC还是HTTP APIs? 上一篇文章我带着大家体验了一把《 ASP.NET Core 3.0 上的gRPC服务模板初体验(多图) 》,如果有兴趣的可以点击链接进行查看,相信跟着做的你,也是可以跑起来的。这篇文章我们将一起来探讨下gRPC服务如何与HTTP APIs进行比较。用于为应用程序提供API的技术是一个重要的选择,与HTTP API相比,gRPC提供了独特的优势。本文从gRPC的优缺点出发,并推荐了一些建议使用gRPC服务以及不建议使用gRPC服务的场景。 作者:依乐祝 原文链接: https://www.cnblogs.com/yilezhu/p/10645804.html 开始之前先看一下gRPC与带有j'son的HTTP APIs对比表格 gRPC的优势 性能 gRPC消息使用一种有效的二进制消息格式protobuf进行序列化。Protobuf在服务器和客户机上的序列化非常快。Protobuf序列化后的消息体积很小,能够有效负载,在移动应用程序等有限带宽场景中显得很重要。 gRPC是为HTTP/2而设计的,它是HTTP的一个主要版本,与HTTP 1.x相比具有显著的性能优势:: 二进制框架和压缩。HTTP/2协议在发送和接收方面都很紧凑和高效。 通过单个TCP连接复用多个HTTP/2调用。多路复用消除了 线头阻塞 。 代码生成

进行API开发选gRPC还是HTTP APIs?

本小妞迷上赌 提交于 2019-11-28 19:54:17
上一篇文章我带着大家体验了一把《 ASP.NET Core 3.0 上的gRPC服务模板初体验(多图) 》,如果有兴趣的可以点击链接进行查看,相信跟着做的你,也是可以跑起来的。这篇文章我们将一起来探讨下gRPC服务如何与HTTP APIs进行比较。用于为应用程序提供API的技术是一个重要的选择,与HTTP API相比,gRPC提供了独特的优势。本文从gRPC的优缺点出发,并推荐了一些建议使用gRPC服务以及不建议使用gRPC服务的场景。 作者:依乐祝 原文链接: https://www.cnblogs.com/yilezhu/p/10645804.html 开始之前先看一下gRPC与带有j'son的HTTP APIs对比表格 gRPC的优势 性能 gRPC消息使用一种有效的二进制消息格式protobuf进行序列化。Protobuf在服务器和客户机上的序列化非常快。Protobuf序列化后的消息体积很小,能够有效负载,在移动应用程序等有限带宽场景中显得很重要。 gRPC是为HTTP/2而设计的,它是HTTP的一个主要版本,与HTTP 1.x相比具有显著的性能优势:: 二进制框架和压缩。HTTP/2协议在发送和接收方面都很紧凑和高效。 通过单个TCP连接复用多个HTTP/2调用。多路复用消除了 线头阻塞 。 代码生成 所有gRPC框架都为代码生成提供了一流的支持