WebSocketSession

代表一个活跃的 WebSocket 连接会话。

此接口提供了设置事件监听器(如接收消息、连接关闭)和发送数据的方法, 从而实现与对等方的全双工实时通信。

Author

M8Test, [email protected], https://m8test.com

Inheritors

Functions

Link copied to clipboard
abstract fun <T> _async(contextBuilder: CoroutineContext.() -> Unit?, start: (CoroutineStarts) -> CoroutineStart?, block: CoroutineScope.() -> T): Deferred<T>

async 的备用名称,用于避免在某些脚本语言中与 async 关键字冲突。 功能与 async 完全相同。

Link copied to clipboard
abstract fun also(block: (ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope) -> Unit): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope>

对 ObjectWrapper 调用给定的 block 函数,并返回 ObjectWrapper 本身。

Link copied to clipboard
abstract fun apply(block: ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope.() -> Unit): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope>

对 ObjectWrapper 调用给定的 block 函数,并返回 ObjectWrapper 本身。

Link copied to clipboard
abstract fun <T> async(contextBuilder: CoroutineContext.() -> Unit?, start: (CoroutineStarts) -> CoroutineStart?, block: CoroutineScope.() -> T): Deferred<T>

在此作用域内启动一个新的协程,并返回一个 Deferred 对象,该对象最终将持有计算结果。

Link copied to clipboard
abstract fun <T> awaitAll(deferredList: List<Deferred<T>>): Deferred<List<T>>

等待一组类型相同Deferred 对象全部成功完成,并返回一个包含所有结果的类型安全列表。

Link copied to clipboard
abstract fun cancel(message: String?)

取消此作用域,这将立即取消其所有子协程。

Link copied to clipboard

创建一个 Deferred,它会挂起直到你手动通过提供的 CancellableContinuation 来恢复它。

Link copied to clipboard
abstract fun close(scope: CoroutineScope, code: Int, message: String): Job

异步关闭 WebSocket 连接。

Link copied to clipboard
abstract fun delay(timeMillis: Long): Deferred<Unit>

返回一个在指定的延迟时间后完成的 Deferred

Link copied to clipboard
abstract fun getContext(): ScriptContext

获取脚本上下文对象 ScriptContext.

Link copied to clipboard
abstract fun getOrigin(): ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope

获取原始的对象.

Link copied to clipboard
abstract fun isActive(): Boolean

检查此作用域是否仍然处于活动状态(即未被取消且未完成)。

Link copied to clipboard
abstract fun joinAll(jobs: List<Job>): Deferred<Unit>

挂起直到指定列表中的所有 Job 都完成(无论是成功、失败还是被取消)。

Link copied to clipboard
abstract fun launch(contextBuilder: CoroutineContext.() -> Unit?, start: (CoroutineStarts) -> CoroutineStart?, block: CoroutineScope.() -> Unit): Job

在此作用域内启动一个新的协程,而不会阻塞当前线程。

Link copied to clipboard
abstract fun <R> let(block: (ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope) -> R): ObjectWrapper<R>?

对 ObjectWrapper 调用给定的 block 函数,并返回 block 函数的结果包装在 ObjectWrapper 中。

Link copied to clipboard
abstract fun loop(body: (CoroutineScope) -> Deferred<Boolean>): Deferred<Unit>

异步地执行一个顺序循环,其中每次迭代自身是一个异步操作,并返回一个布尔值来决定是否继续循环。

Link copied to clipboard
abstract fun <T> reject(error: Throwable): Deferred<T>

创建一个已经以给定异常失败的 Deferred 对象。

Link copied to clipboard
abstract fun <T> resolve(value: T): Deferred<T>

创建一个已经以给定值成功完成的 Deferred 对象。

Link copied to clipboard
abstract fun <R> run(block: ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope.() -> R): ObjectWrapper<R>?

对 ObjectWrapper 调用给定的 block 函数,并返回 block 函数的结果包装在 ObjectWrapper 中。

Link copied to clipboard
abstract fun send(scope: CoroutineScope, any: Any): Job

异步发送一条通用消息。客户端会根据 any 的类型(如 String, ByteArray)自动选择帧类型。

Link copied to clipboard
abstract fun sendBinary(scope: CoroutineScope, bytes: ByteArray): Job

异步发送一条二进制消息。

Link copied to clipboard
abstract fun sendText(scope: CoroutineScope, text: String): Job

异步发送一条文本消息。

Link copied to clipboard
abstract fun setOnBinary(onBinaryListener: (scope: CoroutineScope, bytes: ByteArray) -> Job)

设置一个当接收到二进制消息时触发的回调。

Link copied to clipboard
abstract fun setOnClose(onCloseListener: (scope: CoroutineScope, closeReason: WebSocketCloseReason?) -> Job)

设置一个当 WebSocket 连接关闭时触发的回调。

Link copied to clipboard
abstract fun setOnError(onErrorListener: (scope: CoroutineScope, e: Throwable) -> Job)

设置一个当会话中发生错误时触发的回调。

Link copied to clipboard
abstract fun setOnMessage(onMessageListener: (scope: CoroutineScope, message: Any, isText: Boolean) -> Job)

设置一个通用的消息接收回调,可以同时处理文本和二进制消息。

Link copied to clipboard
abstract fun setOnOpen(onOpenListener: (scope: CoroutineScope) -> Job)

设置一个当 WebSocket 连接成功建立并打开时触发的回调。

Link copied to clipboard
abstract fun setOnText(onTextListener: (scope: CoroutineScope, text: String) -> Job)

设置一个当接收到文本消息时触发的回调。

Link copied to clipboard
abstract fun setOrigin(origin: ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope)

设置原始对象

Link copied to clipboard
abstract fun takeIf(predicate: (ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope) -> Boolean): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope>?

如果 ObjectWrapper 满足给定的 predicate,则返回 ObjectWrapper 本身,否则返回 null 包装在 ObjectWrapper? 中。

Link copied to clipboard
abstract fun takeUnless(predicate: (ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope) -> Boolean): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.CoroutineScope>?

如果 ObjectWrapper 不满足给定的 predicate,则返回 ObjectWrapper 本身,否则返回 null 包装在 ObjectWrapper? 中。

Link copied to clipboard
abstract fun <T> withContext(contextBuilder: CoroutineContext.() -> Unit, block: CoroutineScope.() -> T): Deferred<T>

切换协程的上下文,在新的上下文中执行指定的代码块,然后返回一个持有结果的 Deferred

Link copied to clipboard
abstract fun <T> withTimeout(timeoutMillis: Long, block: CoroutineScope.() -> T): Deferred<T>

在指定的超时时间内运行代码块。如果超时,返回的 Deferred 将会因 TimeoutCancellationException 而失败。

Link copied to clipboard
abstract fun <T> withTimeoutOrNull(timeoutMillis: Long, block: CoroutineScope.() -> T): Deferred<T?>

在指定的超时时间内运行代码块。如果超时,返回的 Deferred 将成功地持有一个 null 值,而不是抛出异常。