public abstract class AbstractDeviceSessionManager extends Object implements DeviceSessionManager
| 限定符和类型 | 类和说明 |
|---|---|
protected static class |
AbstractDeviceSessionManager.DeviceSessionRef |
| 限定符和类型 | 字段和说明 |
|---|---|
protected reactor.core.publisher.Sinks.Many<DeviceSession> |
closeSink |
protected reactor.core.Disposable.Composite |
disposable |
protected Map<String,AbstractDeviceSessionManager.DeviceSessionRef> |
localSessions |
| 构造器和说明 |
|---|
AbstractDeviceSessionManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
reactor.core.publisher.Mono<Boolean> |
checkAlive(String deviceId,
boolean onlyLocal) |
protected reactor.core.publisher.Mono<Boolean> |
checkLocalAlive(String deviceId) |
protected abstract reactor.core.publisher.Mono<Boolean> |
checkRemoteSessionIsAlive(String deviceId) |
protected reactor.core.publisher.Mono<Void> |
checkSession() |
protected reactor.core.publisher.Mono<Void> |
closeSession(DeviceSession session) |
protected reactor.core.publisher.Mono<Void> |
closeSessionSafe(DeviceSession session) |
reactor.core.publisher.Mono<DeviceSession> |
compute(String deviceId,
java.util.function.Function<reactor.core.publisher.Mono<DeviceSession>,reactor.core.publisher.Mono<DeviceSession>> computer) |
reactor.core.publisher.Mono<DeviceSession> |
compute(String deviceId,
reactor.core.publisher.Mono<DeviceSession> creator,
java.util.function.Function<DeviceSession,reactor.core.publisher.Mono<DeviceSession>> updater) |
protected reactor.core.publisher.Mono<Boolean> |
doInit(String deviceId) |
protected reactor.core.publisher.Mono<Void> |
executeInterval() |
protected reactor.core.publisher.Mono<Void> |
fireEvent(DeviceSessionEvent event) |
abstract String |
getCurrentServerId() |
reactor.core.publisher.Flux<DeviceSessionInfo> |
getLocalSessionInfo() |
protected abstract reactor.core.publisher.Mono<Long> |
getRemoteTotalSessions() |
reactor.core.publisher.Mono<DeviceSession> |
getSession(String deviceId) |
reactor.core.publisher.Mono<DeviceSession> |
getSession(String deviceId,
boolean unregisterWhenNotAlive) |
reactor.core.publisher.Flux<DeviceSessionInfo> |
getSessionInfo() |
reactor.core.publisher.Flux<DeviceSessionInfo> |
getSessionInfo(String serverId) |
reactor.core.publisher.Flux<DeviceSession> |
getSessions() |
protected reactor.core.publisher.Mono<DeviceSession> |
handleSessionCompute(DeviceSession old,
DeviceSession newSession) |
void |
init() |
protected abstract reactor.core.publisher.Mono<Boolean> |
initSessionConnection(DeviceSession session) |
reactor.core.publisher.Mono<Boolean> |
isAlive(String deviceId,
boolean onlyLocal) |
reactor.core.Disposable |
listenEvent(java.util.function.Function<DeviceSessionEvent,reactor.core.publisher.Mono<Void>> handler) |
protected abstract reactor.core.publisher.Mono<Boolean> |
remoteSessionIsAlive(String deviceId) |
protected abstract reactor.core.publisher.Flux<DeviceSessionInfo> |
remoteSessions(String serverId) |
reactor.core.publisher.Mono<Long> |
remove(String deviceId,
boolean onlyLocal) |
protected reactor.core.publisher.Mono<Long> |
removeFromCluster(String deviceId) |
protected reactor.core.publisher.Mono<Long> |
removeLocalSession(String deviceId) |
protected abstract reactor.core.publisher.Mono<Long> |
removeRemoteSession(String deviceId) |
void |
shutdown() |
protected reactor.core.publisher.Mono<Boolean> |
syncConnectionInfo(DeviceOperator device,
DeviceSession session) |
reactor.core.publisher.Mono<Long> |
totalSessions(boolean onlyLocal) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisAliveprotected final Map<String,AbstractDeviceSessionManager.DeviceSessionRef> localSessions
protected final reactor.core.Disposable.Composite disposable
protected reactor.core.publisher.Sinks.Many<DeviceSession> closeSink
public abstract String getCurrentServerId()
getCurrentServerId 在接口中 DeviceSessionManagerprotected abstract reactor.core.publisher.Mono<Boolean> initSessionConnection(DeviceSession session)
protected abstract reactor.core.publisher.Mono<Long> removeRemoteSession(String deviceId)
protected abstract reactor.core.publisher.Mono<Long> getRemoteTotalSessions()
protected abstract reactor.core.publisher.Mono<Boolean> remoteSessionIsAlive(String deviceId)
protected abstract reactor.core.publisher.Mono<Boolean> checkRemoteSessionIsAlive(String deviceId)
protected abstract reactor.core.publisher.Flux<DeviceSessionInfo> remoteSessions(String serverId)
public void init()
protected reactor.core.publisher.Mono<Void> executeInterval()
public void shutdown()
public reactor.core.publisher.Mono<DeviceSession> getSession(String deviceId)
getSession 在接口中 DeviceSessionManagerpublic reactor.core.publisher.Mono<DeviceSession> getSession(String deviceId, boolean unregisterWhenNotAlive)
getSession 在接口中 DeviceSessionManagerpublic reactor.core.publisher.Flux<DeviceSession> getSessions()
getSessions 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Mono<Long> remove(String deviceId, boolean onlyLocal)
remove 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Mono<Boolean> isAlive(String deviceId, boolean onlyLocal)
isAlive 在接口中 DeviceSessionManagerpublic reactor.core.publisher.Mono<Boolean> checkAlive(String deviceId, boolean onlyLocal)
checkAlive 在接口中 DeviceSessionManagerprotected final reactor.core.publisher.Mono<Boolean> checkLocalAlive(String deviceId)
protected final reactor.core.publisher.Mono<Boolean> syncConnectionInfo(DeviceOperator device, DeviceSession session)
public final reactor.core.publisher.Mono<Long> totalSessions(boolean onlyLocal)
totalSessions 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Flux<DeviceSessionInfo> getSessionInfo()
getSessionInfo 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Flux<DeviceSessionInfo> getSessionInfo(String serverId)
getSessionInfo 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Flux<DeviceSessionInfo> getLocalSessionInfo()
getLocalSessionInfo 在接口中 DeviceSessionManagerpublic reactor.core.publisher.Mono<DeviceSession> compute(@Nonnull String deviceId, reactor.core.publisher.Mono<DeviceSession> creator, java.util.function.Function<DeviceSession,reactor.core.publisher.Mono<DeviceSession>> updater)
compute 在接口中 DeviceSessionManagerpublic final reactor.core.publisher.Mono<DeviceSession> compute(@Nonnull String deviceId, @Nonnull java.util.function.Function<reactor.core.publisher.Mono<DeviceSession>,reactor.core.publisher.Mono<DeviceSession>> computer)
compute 在接口中 DeviceSessionManagerprotected reactor.core.publisher.Mono<DeviceSession> handleSessionCompute(DeviceSession old, DeviceSession newSession)
protected final reactor.core.publisher.Mono<Void> closeSessionSafe(DeviceSession session)
protected final reactor.core.publisher.Mono<Void> closeSession(DeviceSession session)
protected final reactor.core.publisher.Mono<Long> removeLocalSession(String deviceId)
protected reactor.core.publisher.Mono<Void> fireEvent(DeviceSessionEvent event)
public reactor.core.Disposable listenEvent(java.util.function.Function<DeviceSessionEvent,reactor.core.publisher.Mono<Void>> handler)
listenEvent 在接口中 DeviceSessionManagerprotected reactor.core.publisher.Mono<Void> checkSession()
Copyright © 2019–2023. All rights reserved.