科技新闻

微信机器人接口

时光毁灭记忆、已成空白 提交于 2020-03-09 11:58:55
微控API 是一套的微信个人号 接口,它能监测微信中的各种事件,并辅助微信执行各种操作,提供了客户与微信个人号对接的能力,技术上来讲是一款基于MAC/IPAD协议开放性API。杜绝封号,追封,批量封等封号问题,支持多种微信方式接入。 你可以 通过API 实现 个性化微信功能 (例:营销系统、机器人小助手、客服系统等),用来自动管理微信消息 文档地址: 点击这里 https://wkteam.gitbook.io/api 在线测试: 点击这里 (https://documenter.getpostman.com/view/1268847/SzKQxKf5?version=latest#355af8ee-0353-4a9e-92f6-ff284c514bec) 来源: https://www.cnblogs.com/wkteam/p/12447086.html

Android中消息机制分析

筅森魡賤 提交于 2020-03-09 09:55:04
本文中的源码基于Android 29; 一、概述 对于Android开发者而言,我们处理异步消息用的最多的也是轻车熟路的一种方式,就是使用Handler进行消息的分发和处理。但是我们在一个页面(Activity 或者 Fragment)中可以直接使用Handler进行消息的分发和处理。实例如下: private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { //处理消息 return false; } }); 我们一般在handleMessage()方法里进行消息的处理,同时在需要发送消息的地方使用mHandler.sendEmptyMessage(0)发送消息即可。callback回调是怎么收到消息的呢?同时Handler又是怎么发送消息的呢?我们带着问题看一下源码。 Android开发者们都知道:当APP启动时,会默认产生一个主线程(也就是UI线程),这个线程会关联一个消息队列,然后所有的操作都会被封装成消息后在主线程中处理。那么到底Android中消息机制是什么样子的呢? 对于Android程序而言,运行程序也是需要通过Java中的程序入口开始执行

zeromq protobuf例子

走远了吗. 提交于 2020-03-09 09:04:37
https://github.com/AifiHenryMa/zeromq_protocolbuffer_demo https://github.com/protocolbuffers/protobuf github protobuf 随着使用的协议而有所不同,具体如下: TCP (tcp://hostname:port): 在主机之间进行通讯 INROC (inproc://name): 在同一进程的线程之间进行通讯(线程间) IPC (ipc:///tmp/filename): 同一主机的进程之间进行通讯 PGM (pgm://interface;address:port 和 epgm://interface;address:port): 多播通讯 消息格式 ZeroMQ ?默认可以发送或接收字符串和二进制的消息类型,但它对套接字之间传送的消息格式不加限制。我们可以自由地选择消息编码,如 XML,JSON、 MessagePack…在本文中为了简单起见,我们只使用字符串 http://travlr.github.io/libzmq/classzmq_1_1ipc__connecter__t.html 英文libzmq Protobuf 全称Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。

MQTT入门教程(一)

陌路散爱 提交于 2020-03-09 08:56:20
MQTT 入门介绍 一、简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。 二、设计规范 由于物联网的环境是非常特别的,所以MQTT遵循以下设计原则: (1)精简,不添加可有可无的功能; (2)发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递; (3)允许用户动态创建主题,零运维成本; (4)把传输量降到最低以提高传输效率; (5)把低带宽、高延迟、不稳定的网络等因素考虑在内; (6)支持连续的会话控制; (7)理解客户端计算能力可能很低; (8)提供服务质量管理; (9)假设数据不可知

ProtocolBuffer 使用及 一些坑

空扰寡人 提交于 2020-03-09 08:42:56
Protocol Buffers,是 Google公司开发的一种数据描述语言,类似于 XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。 /*--> */ /*--> */ ProtocolBuffer 的优势 跨平台: ProtoBuf 支持多平台和语言, 包括C++/Java/Python 等等 序列化 &反序列号 : ProtoBuf支持直接将对象序列化成 Data, 也支持直接将 Data序列化为对象类型 消息大小 :一条消息数据,用 protobuf序列化后的大小是 json的 10分之一, xml格式的 20分之一,是二进制序列化的 10分之一 . 对于即时通信消息来说, 减小数据量的大小非常有必要 /*--> */ /*--> */ 使用地址: https://github.com/alexeyxo/protobuf-swift 1.ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )" 2.brew install automake 3.brew install libtool 4.brew install protobuf 5.git clone git@github.com:alexeyxo/protobuf-swift

Google Protocol Buffer

让人想犯罪 __ 提交于 2020-03-09 08:29:41
ProtoBuf使用步骤: 在.proto文件中指定需要序列化的消息格式; 使用protocol buffer编译器将.proto文件生成你所需语言的数据访问类; 然后就可以在自己的程序中使用这些类。 ProtoBuf相较于XML的优势: 简单 3到10倍地小 20到100倍地快 更明确 生成的数据访问类更容易供编程使用 劣势: 不适合处理标记文本(HTML) 不可读 ProtoBuf 生成的c++代码 packages .proto文件中package声明相当于C++中namespace messages message Foo {} message Foo会生成一个类Foo,该类继承自google::protobuf::Message。根据优化模式来确定是否重载Message中的虚函数(纯虚函数一定会实现)。默认情况下,为了获得最大执行速度,会实现所有方法,但是如果.proto文件包含: option optimize_for = CODE_SIZE; 只会重载必要的方法,这会显著减少生成代码的大小,但是会降低效率。如果.proto文件包含: option optimize_for = LITE_RUNTIME; 进行所有方法的快速实现,但是只实现google::protobuf::MessageLite接口,该接口只有Message中的部分方法。 Message接口定义的方法

面试题篇(2016)】javaweb

天大地大妈咪最大 提交于 2020-03-09 08:21:40
面试题篇(2016)】java基础 1. get和post的区别 都是http的请求方式 get 一般用于获取查询资源信息,提交的数据会在地址栏显示出来,有长度限制,安全性较低 post一般用于更新资源信息,提交的数据放在请求头的消息体中,没有长度限制,安全性较高 2. 对servlet的理解 全称Java Servlet,是用java编写的服务器端程序,都要实现Servlet接口的类 3. servlet生命周期 Servlet 通过调用 init () 方法进行初始化。 Servlet 调用 service() 方法来处理客户端的请求。 Servlet 通过调用 destroy() 方法终止(结束)。 4. forward和redirect的区别 名字 含义 forward 服务器端的转向,是在一次请求中完成的,在客户端浏览器地址中不会显示出转向后的地址(更高效) redirect 客户端的转向,浏览器将会得到跳转的地址,并 重新发送 请求链接,如需跳转到另一个服务器上的资源,使用sendRedirect() 方法 5. jsp和servlet的区别 jsp是servlet的扩展,所有的jsp文件都会被翻译为一个继承HttpServlet的类,也就是说jsp最终也是一个Servlet。 jsp侧重视图,servlet主要用于控制逻辑。 6. jsp的内置对象 九大内置对象 含义

Cache-control

随声附和 提交于 2020-03-09 06:07:19
网页的缓存是由 HTTP 消息头中的“ Cache-control ”来控制的,常见的取值有 private 、 no-cache 、 max-age 、 must-revalidate 等,默认为 private 。其作用根据不同的重新浏览方式分为以下几种情况: ( 1 ) 打开新窗口 如果指定 cache-control 的值为 private 、 no-cache 、 must-revalidate ,那么打开新窗口访问时都会重新访问服务器。而如果指定了 max-age 值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5 表示当访问此网页后的 5 秒内再次访问不会去服务器 ( 2 ) 在地址栏回车 如果值为 private 或 must-revalidate (和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为 no-cache ,那么每次都会访问。如果值为 max-age ,则在过期之前不会重复访问。 ( 3 ) 按后退按扭 如果值为 private 、 must-revalidate 、 max-age ,则不会重访问,而如果为 no-cache ,则每次都重复访问 (private: 私人的; must-revalidate:必须重新验证) ( 4 ) 按刷新按扭 无论为何值,都会重复访问

HTTP header中的 Cache-control

半城伤御伤魂 提交于 2020-03-09 06:06:25
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况: (1) 打开新窗口 如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器 (2) 在地址栏回车 如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。 (3) 按后退按扭 如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问 (4) 按刷新按扭 无论为何值,都会重复访问 当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文件夹留下页面备份。 另外,通过指定“Expires”值也会影响到缓存。例如

nodejs-websocket初使用

Deadly 提交于 2020-03-09 05:00:36
主要实现一个客户端给服务端发送消息,服务端再推送给客户端,其中客户端是有多个 首先来看一下效果 具体代码实现: 服务端: 首先需要安装依赖 npm i nodejs-websocket -S 然后新建一个app.js文件 app.js代码如下: const ws = require('nodejs-websocket');//引入websocketconst prot = 8088; const server = ws.createServer(connection => { // console.log('有一名用户连接进来了...') connection.on("text", function (str) { // console.log('我来接收客户端发过来的消息' + str) // connection.sendText(str);//返回给客户端的数据 server.connections.forEach(function (conn) { conn.sendText(str)//返回给所有客户端的数据(相当于公告、通知) }) }) //监听关闭 connection.on("close", function (code, reason) { console.log("Connection closed") }) //监听异常 connection.on(