commands

  • type 说明怎样解释一个命令名
  • which 显示会执行哪个可执行程序
  • man 显示命令手册页
  • apropos 显示一系列适合的命令

阅读全文

Linux目录

  • / 根目录
  • /bin 包含系统启动和运行所必需的二进制程序
  • /boot 包含 Linux 内核、初始 RAM 磁盘映像(用于启动时所需的驱动)和 启动加载程序。
    • /boot/grub/grub.conf or menu.lst 被用来配置启动加载程序。

阅读全文

SpringBoot之MQTT消息订阅

实现MQTT协议的中间件,目前使用的是Apache-Apollo服务器。
接上篇,本文介绍如何在SpringBoot上集成MQTT消息订阅功能。

阅读全文

SpringBoot之MQTT消息发送

实现MQTT协议的中间件,目前使用的是Apache-Apollo服务器。
本文使用Gateway绑定的方式,进行消息发送。

SpringBoot

使用idea新建Spring Initializr工程,过程省略,使用Maven对项目依赖进行管理,配置过程省略。
完成后,在pom文件中加入以下依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!--MQTT Start-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--MQTT End-->

然后配置SpringBoot的文件application.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
spring:
mqtt:
# publish 发布
publish:
#发布 - 用户名
username: admin
#发布 - 密码
password: password
#发布 - 服务器连接地址,如果有多个,用逗号隔开,如:tcp://127.0.0.1:61613,tcp://192.168.2.133:61613
url: tcp://127.0.0.1:61613
client:
#发布 - 连接服务器默认客户端ID
id: mqttId
default:
#发布 - 默认的消息推送主题,实际可在调用接口时指定
topic: topic

阅读全文

mqtt之apache-apollo服务搭建

MQTT

MQTT是工作在TCP/IP协议族上的发布/订阅范式消息的协议。
跟HTTP协议一样,不能直接拿来使用,需要找实现这个协议的库或者服务器来运行。
本文介绍服务器apache-apollo的配置。

阅读全文

RunTime之NSObject解析

写在前边

上篇文章中,介绍了Objc对象的分类:实例对象、类对象、元类对象;也介绍了对象分类中通过isasuperclass进行方法查找的流程。今天通过对苹果官方源码objc4-750对其详细说明。

阅读全文

KVO的使用及原理

概述

KVO 全称KeyValueObserving键值监听,是苹果提供的一套事件通讯机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。一般继承自NSObject的对象都默认支持KVO

对象的属性是否发生变化肯定会调用其setter方法,而KVO的本质是监听对象有没有调用被监听属性的setter方法

阅读全文

Objective-C对象的分类

分类.png

Ojbective-C对象

  • instance 实例对象:就是通过类alloc出来的对象,每次调用alloc都会产生出来一个新对象
    • isa指针
    • 其他成员变量的值
  • class 类对象:每个类在内存中有且只有一个类对象
    • isa指针
    • superclass指针
    • 类的属性信息(@property)
    • 类的对象方法信息(instance method)
    • 类的协议信息(protocol)
    • 类的成员变量信息(ivar)
  • meta-class 元类对象:每个类在内存中有且只有一个。元类对象元类对象的结构和类对象的结构相同,但是用途不一样。元类对象在内存中存储的信息主要包括
    • isa指针
    • 类方法信息(class method)

阅读全文

Runtime之@dynamic关键字

讲述@dynamic之前,需要了解几个名词。最后再重点介绍@dynamic的用法

  • @property

    • 原子性

    • 存取控制

    • 内存管理

  • @synthesize

阅读全文

Runtime之objc_msgSend流程

总览

Objetive-C的消息发送,是通过objc_msgSend来实现的,具体执行过程,主要分三个阶段:

  • 1、消息发送;
  • 2、动态方法解析
  • 3、消息转发或重新签名

阅读全文