public interface DeviceSession
ChildrenDeviceSession,
KeepOnlineSession| 限定符和类型 | 方法和说明 |
|---|---|
void |
close()
关闭session
|
long |
connectTime() |
default Optional<InetSocketAddress> |
getClientAddress() |
String |
getDeviceId() |
String |
getId() |
default java.time.Duration |
getKeepAliveTimeout() |
DeviceOperator |
getOperator()
获取设备操作对象,在类似TCP首次请求的场景下,返回值可能为
null. |
default Optional<String> |
getServerId() |
Transport |
getTransport()
传输协议,比如MQTT,TCP等
|
boolean |
isAlive() |
default boolean |
isWrapFrom(Class<?> type)
判断会话是否包装自指定的类型,在某些场景下,可能会对会话进行包装
|
default void |
keepAlive() |
long |
lastPingTime() |
void |
onClose(Runnable call)
设置close回调
|
void |
ping()
心跳
|
reactor.core.publisher.Mono<Boolean> |
send(EncodedMessage encodedMessage)
发送消息给会话
|
default void |
setKeepAliveTimeout(java.time.Duration timeout)
设置心跳超时时间
|
default <T extends DeviceSession> |
unwrap(Class<T> type)
展开为指定对会话类型,通过此方法拿到最原始对会话对象进行操作.如果类型不一致可能会抛出
ClassCastException |
String getId()
String getDeviceId()
@Nullable DeviceOperator getOperator()
null.
可以通过判断此返回值是否为null,来处理首次连接的情况。long lastPingTime()
long connectTime()
reactor.core.publisher.Mono<Boolean> send(EncodedMessage encodedMessage)
encodedMessage - 消息MqttMessageTransport getTransport()
void close()
void ping()
keepAlive()boolean isAlive()
void onClose(Runnable call)
call - 回调default Optional<InetSocketAddress> getClientAddress()
default void keepAlive()
default void setKeepAliveTimeout(java.time.Duration timeout)
timeout - 心跳超时时间default java.time.Duration getKeepAliveTimeout()
default boolean isWrapFrom(Class<?> type)
type - 类型default <T extends DeviceSession> T unwrap(Class<T> type)
ClassCastExceptionT - 类型泛型type - 类型Copyright © 2019–2022. All rights reserved.