Skip to content

Commit 98296d3

Browse files
committed
fix detekt
1 parent 2f1e2ca commit 98296d3

4 files changed

Lines changed: 18 additions & 9 deletions

File tree

Realtime/src/commonMain/kotlin/io/github/jan/supabase/realtime/Realtime.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ interface Realtime : MainPlugin<Realtime.Config>, CustomSerializationPlugin {
6060
*/
6161
val subscriptions: Map<String, RealtimeChannel>
6262

63+
@SupabaseInternal
6364
val websocket: RealtimeWebsocket
6465

6566
/**
@@ -101,6 +102,11 @@ interface Realtime : MainPlugin<Realtime.Config>, CustomSerializationPlugin {
101102
@SupabaseInternal
102103
suspend fun send(message: RealtimeMessage)
103104

105+
/**
106+
* Sends a binary payload to the realtime websocket
107+
* @param data The data to send
108+
*/
109+
@SupabaseInternal
104110
suspend fun send(data: ByteArray)
105111

106112
/**
@@ -136,6 +142,7 @@ interface Realtime : MainPlugin<Realtime.Config>, CustomSerializationPlugin {
136142
* @property rejoinDelay The interval between channel rejoin attempts
137143
* @property maxAttempts The maximum number of times a channel will try to rejoin after an error before giving up. Defaults to 5
138144
* @property disconnectOnEmptyChannelsAfter Delay before disconnecting from the realtime socket after the last channel was removed. If null, it defaults to `2*heartbeatInterval`
145+
* @property vsn The realtime protocol version. [RealtimeProtocolVersion.V2] supports binary payloads and is more efficient.
139146
*/
140147
@Suppress("MagicNumber")
141148
class Config: MainConfig(), CustomSerializationConfig, AuthDependentPluginConfig {

Realtime/src/commonMain/kotlin/io/github/jan/supabase/realtime/RealtimeProtocolVersion.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.github.jan.supabase.realtime
22

33
/**
44
* Phoenix protocol version used for WebSocket communication.
5+
* @param value The raw value
56
*/
67
enum class RealtimeProtocolVersion(val value: String) {
78
/**

Realtime/src/commonMain/kotlin/io/github/jan/supabase/realtime/broadcast/RealtimeSerializer.kt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@file:Suppress("MagicNumber")
12
package io.github.jan.supabase.realtime.broadcast
23

34
import io.github.jan.supabase.realtime.RealtimeMessage
@@ -12,12 +13,12 @@ import kotlinx.serialization.json.contentOrNull
1213
import kotlinx.serialization.json.jsonObject
1314
import kotlinx.serialization.json.jsonPrimitive
1415

15-
enum class BinaryKind(val value: Byte) {
16+
internal enum class BinaryKind(val value: Byte) {
1617
USER_BROADCAST_PUSH(3),
1718
USER_BROADCAST(4)
1819
}
1920

20-
enum class PayloadEncoding(val value: Byte) {
21+
internal enum class PayloadEncoding(val value: Byte) {
2122
BINARY(0),
2223
JSON(1);
2324

@@ -50,6 +51,7 @@ internal fun ByteArray.decodeBinaryPayload(): RealtimeBroadcast {
5051
}
5152
}
5253

54+
@Suppress("ComplexCondition")
5355
internal fun RealtimeBroadcast.encodeBroadcast(
5456
joinRef: String?,
5557
ref: String?,
@@ -61,13 +63,9 @@ internal fun RealtimeBroadcast.encodeBroadcast(
6163
val topicBytes = topic.encodeToByteArray()
6264
val eventBytes = event.encodeToByteArray()
6365
val metaBytes = ByteArray(0)
64-
val encoding = when(payload) {
65-
is BroadcastPayload.Binary -> PayloadEncoding.BINARY
66-
is BroadcastPayload.Json -> PayloadEncoding.JSON
67-
}
68-
val payload = when(payload) {
69-
is BroadcastPayload.Binary -> payload.data
70-
is BroadcastPayload.Json -> payload.value.toString().encodeToByteArray()
66+
val (encoding, payload) = when(payload) {
67+
is BroadcastPayload.Binary -> PayloadEncoding.BINARY to payload.data
68+
is BroadcastPayload.Json -> PayloadEncoding.JSON to payload.value.toString().encodeToByteArray()
7169
}
7270

7371
if(joinRefBytes.size > 255 || refBytes.size > 255 || topicBytes.size > 255 || eventBytes.size > 255 || metaBytes.size > 255)

Realtime/src/commonMain/kotlin/io/github/jan/supabase/realtime/websocket/RealtimeWebsocket.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ interface RealtimeWebsocket {
1717
*/
1818
val hasIncomingMessages: Boolean
1919

20+
/**
21+
* Generates a new ref for a realtime message
22+
*/
2023
fun makeRef(): String
2124

2225
/**

0 commit comments

Comments
 (0)