# 常见问题总汇

### 关于too many openfile问题

由Linux系统默认情况下只允许建立一个相关效低的网络连接数，所以需要使用ulimit -a查看当时系统的限制数，一般通过“sudo ulimit -u 数量” 和 “sudo ulimit -n 数量”进行相关参数设置。如需永久生效设置请参阅本手册中的（单机千万连接测试）章节。

### 当前流行的物联网协议有？

MQTT、MQTT-SN、CoAP、WebSocket

### Coolpy7与普通MQTT服务器的区别？

Coolpy7的亮点是万物皆是消息，通过自主研发的CGP协议，任何Coolpy7端都可以直接操作数据库，外加用户中心控制

### Coolpy7添加自己业务的两种方式？

通过dbpoxy操作数据库和Coolpy7的hook，hook实现的功能有\[用户鉴定和授权]、\[subs消息过滤]、\[pubs消息收集]

### Coolpy7的集群？

使用高效率的quic协议

### Coolpy7的客户端ID的约定？

不能用空，也不能包括“-”，用UUID的同学此处需要做额外处理

### CGP协议支持多表查询？

支持，在对应的sql语句中，写多表查询的sql即可，其中，对于表名的声明为主表。

### 后期增加的功能？

有订阅和取消订阅、客户端意外断开

### Coolpy7是否有缓存客户端列表？

没有

### Coolpy7判断对应在线的具体方法？

通过消息来做到判断下对方是否在线，做法如下：例如当连接成功就订阅一个qos 0的私有地址，把它当ping用，你pub一个消息去这个地址，如果有回复他就是在线的

### pubs中的newpayload介绍？

newpayload是直接function返回到cp7内核去做发送用的，http那个是body，你http要哪个都可以，你自己随意，newpayload如果==“”的话内核不会替换原来的payload

### 如果你用同一个clientID去连接Coolpy7？

那么前一个会被T掉，同学们注意。

### Coolpy7今后会桥接的中间件？

Kafka/RocketMQ/RabbitMQ

### Coolpy7支持的数据通信格式？

支持json和msgpack，msgpack比protobuffer快

### 心跳检测的设置？

Coolpy7严格依照MQTT协议，不支持设置心跳超时机制

### Coolpy7的订阅-发布模式？

mqtt要求每个订阅都有回应包，如果你不允许订阅回应包协议没有定义订阅失败的回应包，要么就订阅逻辑不生效，然后返回一个订阅成功的包回去，不然客户端为认为没有等到订阅包而关闭连接

### 对于发布消息的负载均衡处理？

比如我有三个订阅了/usr/local 那么我现在发送一个/usr/local，coolpy7是三个订阅都会收到信息。 后期增加过滤功能，实现负载，类似于Kafka和RocketMQ中的组消费

### Coolpy7的后台管理？

你的官网+社区+IOT平台，一整套用Coolpy7 oauth2做用户中心就是同一套用户账号系统公用

### 关于Coolpy7客户端对数据库操作权限的控制？

解决方案正在路上.....可能，会增加类似拦截器的功能，来实现过滤

### 为什么我登陆时密码无法传送到hook代码里？

用户登陆时，一但需要使用密码标识即必需用户名标识不为空，因为没有填空用户名信息导致的。
