package com.doumee.jtt808.web.config;
|
|
import io.github.yezhihao.netmc.core.HandlerMapping;
|
import io.github.yezhihao.netmc.core.SpringHandlerMapping;
|
import io.github.yezhihao.netmc.session.SessionListener;
|
import io.github.yezhihao.netmc.session.SessionManager;
|
import io.github.yezhihao.protostar.SchemaManager;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.yzh.protocol.codec.DataFrameMessageDecoder;
|
import org.yzh.protocol.codec.JTMessageAdapter;
|
import org.yzh.protocol.codec.JTMessageEncoder;
|
import org.yzh.protocol.codec.MultiPacketDecoder;
|
import com.doumee.jtt808.web.endpoint.JTHandlerInterceptor;
|
import com.doumee.jtt808.web.endpoint.JTMultiPacketListener;
|
import com.doumee.jtt808.web.endpoint.JTSessionListener;
|
import com.doumee.jtt808.web.model.enums.SessionKey;
|
|
@Configuration
|
public class JTBeanConfig {
|
|
@Bean
|
public HandlerMapping handlerMapping() {
|
return new SpringHandlerMapping();
|
}
|
|
@Bean
|
public JTHandlerInterceptor handlerInterceptor() {
|
return new JTHandlerInterceptor();
|
}
|
|
@Bean
|
public SessionListener sessionListener() {
|
return new JTSessionListener();
|
}
|
|
@Bean
|
public SessionManager sessionManager(SessionListener sessionListener) {
|
return new SessionManager(SessionKey.class, sessionListener);
|
}
|
|
@Bean
|
public SchemaManager schemaManager() {
|
return new SchemaManager("org.yzh.protocol");
|
}
|
|
@Bean
|
public JTMessageAdapter messageAdapter(SchemaManager schemaManager) {
|
JTMessageEncoder encoder = new JTMessageEncoder(schemaManager);
|
MultiPacketDecoder decoder = new MultiPacketDecoder(schemaManager, new JTMultiPacketListener(10));
|
return new WebLogAdapter(encoder, decoder);
|
}
|
|
@Bean
|
public JTMessageAdapter alarmFileMessageAdapter(SchemaManager schemaManager) {
|
JTMessageEncoder encoder = new JTMessageEncoder(schemaManager);
|
DataFrameMessageDecoder decoder = new DataFrameMessageDecoder(schemaManager, new byte[]{0x30, 0x31, 0x63, 0x64});
|
return new WebLogAdapter(encoder, decoder);
|
}
|
|
@Bean
|
public MultiPacketDecoder multiPacketDecoder(SchemaManager schemaManager) {
|
return new MultiPacketDecoder(schemaManager);
|
}
|
}
|