package com.iplatform.tcp.lb;
|
|
import com.walker.tcp.lb.LongConnectionMeta;
|
|
/**
|
* 平台实现的长连接元数据对象。
|
* <pre>
|
* 1) 该对象表示一个物理连接的映射,会缓存到Redis中。
|
* 2) 本机节点只能获取自己的链路连接,并通过连接直接发送消息。
|
* 3) 连接元数据作用是,在其他节点中通过Redis中记录的连接映射以MQ消息形式发送出去。
|
* </pre>
|
* @author 时克英
|
* @date 2023-09-26
|
*/
|
public class MqConnectionMeta extends LongConnectionMeta {
|
|
// private final transient SendStatusCallback callback = new SendStatusCallback();
|
|
public MqConnectionMeta(){}
|
|
public MqConnectionMeta(String id) {
|
super(id);
|
}
|
|
// @JsonIgnore
|
// @Override
|
// public void write(Response<?> response) {
|
// // 通过MQ发送消息到目标主机,该目标就是当前连接绑定的主机标识。
|
// // 暂时使用异步任务发送,2023-09-26
|
// // 这里发送的主题就是全局连接对应的主机信息:
|
//// BeanContextAware.getBeanByType(RocketMQEnhanceTemplate.class)
|
//// .sendAsync(response.getTopic(), this.acquireMqResponse(response), callback);
|
// logger.info("+++++++++++++++++++++++++");
|
// BeanContextAware.getBeanByType(RocketMQEnhanceTemplate.class)
|
// .sendAsync(this.getConnectionHost(), this.acquireMqResponse(response), callback);
|
// if(this.logger.isDebugEnabled()){
|
// logger.debug("MqConnectionMeta 发送一个消息:{}", response);
|
// }
|
// }
|
|
// @Override
|
// protected void onWrite(Response<?> response){
|
// logger.info("+++++++++++++++++++++++++");
|
// BeanContextAware.getBeanByType(RocketMQEnhanceTemplate.class)
|
// .sendAsync(this.getConnectionHost(), this.acquireMqResponse(response), callback);
|
// if(this.logger.isDebugEnabled()){
|
// logger.debug("MqConnectionMeta 发送一个消息:{}", response);
|
// }
|
// }
|
|
// private MqResponse acquireMqResponse(Response<?> response){
|
// MqResponse data = new MqResponse();
|
// data.setResponse(response);
|
// data.setKey(IdUtils.fastSimpleUUID());
|
// data.setRetryTimes(1);
|
// data.setSource(response.getProtocolNum());
|
// data.setSendTime(DateUtils.getDateTimeNumber());
|
// data.setTopic(response.getTopic());
|
// return data;
|
// }
|
|
@Override
|
public void disconnect() {
|
// nothing;
|
}
|
|
@Override
|
public boolean isConnected() {
|
return true;
|
}
|
|
@Override
|
public String toString(){
|
return new StringBuilder("MqConnectionMeta{id=").append(this.getId())
|
.append(", alreadyLogin=").append(this.getAlreadyLogin())
|
.append(", host=").append(this.getConnectionHost())
|
.append(", name=").append(this.getName())
|
.append(", lastTime=").append(this.getLastTime())
|
.append("}").toString();
|
}
|
}
|