Smalldok's Tech Blog

穷则变、变则通、通则达


  • 首页

  • 分类

  • 关于

  • 标签

  • 归档

  • 公益 404

  • 搜索

5-客户端推送 PUSH

| 分类于 源码学习 , MPush , 源码分析 , Mpush Server , 接入服务 | 评论数: | 阅读次数:

接收客户端的PUSH请求,请求处理器走的SPI机制,业务实现由SPI扩展实现;

1
2
//ConnectionServer#init()
messageDispatcher.register(Command.PUSH, PushHandlerFactory::create);

1
2
3
4
5
public interface PushHandlerFactory extends Factory<MessageHandler> {
static MessageHandler create() {
return SpiLoader.load(PushHandlerFactory.class).get();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Spi(order = 1)
public final class ClientPushHandler extends BaseMessageHandler<PushMessage> implements PushHandlerFactory {
@Override
public PushMessage decode(Packet packet, Connection connection) {
return new PushMessage(packet, connection);
}
@Override
public void handle(PushMessage message) {
Logs.PUSH.info("receive client push message={}", message);

if (message.autoAck()) {
AckMessage.from(message).sendRaw();
Logs.PUSH.info("send ack for push message={}", message);
}
//biz code write here
}
@Override
public MessageHandler get() {
return this;
}
}



接入服务文章目录:

  • 1-心跳 HEARTBEAT
  • 2-握手 HANDSHAKE
  • 3-用户绑定-解绑 BIND-UNBIND
  • 4-快速连接 FAST_CONNECT
  • 5-客户端推送 PUSH
  • 6-消息确认 ACK
  • 7-HTTP代理 HTTP_PROXY
1…787980…100
smalldok

smalldok

JAVA服务端架构,目前方向是微服务落地、基础设施、中间件、DevOps

100 日志
27 分类
17 标签
Links
  • sofa-bolt
  • sofa-rpc
  • dubbo
  • sofa-tracer
  • sofa-boot
  • Sentinel
  • COLA
  • nacos
  • xxl-job
  • apollo
  • sharding-sphere
  • fescar
  • ByteTCC
  • tcc-transaction
  • rocketmq
  • canal
  • arthas
  • jvm-sandbox
  • sofa-lookout
  • disruptor
  • mpush
© 2007 – 2019 smalldok
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Mist v6.7.0