From fdebc1c0a4ac8f0249613b559444794b3626913c Mon Sep 17 00:00:00 2001 From: dsrees Date: Fri, 9 Jun 2023 20:32:25 -0400 Subject: [PATCH 01/17] Include the payload as a json string in message --- .../kotlin/org/phoenixframework/Defaults.kt | 42 +++++++++++--- .../kotlin/org/phoenixframework/Message.kt | 5 +- .../org/phoenixframework/DefaultsTest.kt | 55 ++++++++++++++++++- 3 files changed, 93 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/org/phoenixframework/Defaults.kt b/src/main/kotlin/org/phoenixframework/Defaults.kt index 8a6a387..973b6ce 100644 --- a/src/main/kotlin/org/phoenixframework/Defaults.kt +++ b/src/main/kotlin/org/phoenixframework/Defaults.kt @@ -25,6 +25,8 @@ package org.phoenixframework import com.google.gson.FieldNamingPolicy import com.google.gson.Gson import com.google.gson.GsonBuilder +import com.google.gson.JsonObject +import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken import okhttp3.HttpUrl import java.net.URL @@ -65,18 +67,44 @@ object Defaults { */ @Suppress("UNCHECKED_CAST") val decode: DecodeClosure = { rawMessage -> - val anyType = object : TypeToken>() {}.type - val result = gson.fromJson>(rawMessage, anyType) + var message = rawMessage + message = message.removeRange(0, 1) // remove '[' + + val joinRef = message.takeWhile { it != ',' } // take join ref, 'null' or '5' + message = message.removeRange(0, joinRef.length) // remove join ref + message = message.removeRange(0, 1) // remove ',' + + val ref = message.takeWhile { it != ',' } // take ref, 'null' or '5' + message = message.removeRange(0, ref.length) // remove ref + message = message.removeRange(0, 2) // remove ',"' + + val topic = message.takeWhile { it != '"' } + message = message.removeRange(0, topic.length) + message = message.removeRange(0, 3) // remove '","' + + val event = message.takeWhile { it != '"' } + message = message.removeRange(0, event.length) + message = message.removeRange(0, 2) // remove '",' + + val remaining = message.removeRange(message.length - 1, message.length) + + val jsonObj = gson.fromJson(remaining, JsonObject::class.java) + val response = jsonObj.get("response") + val payload = response?.let { gson.toJson(response) } ?: remaining + + val anyType = object : TypeToken>() {}.type + val result = gson.fromJson>(remaining, anyType) // vsn=2.0.0 message structure // [join_ref, ref, topic, event, payload] Message( - joinRef = result[0] as? String?, - ref = result[1] as? String ?: "", - topic = result[2] as? String ?: "", - event = result[3] as? String ?: "", - rawPayload = result[4] as? Payload ?: mapOf() + joinRef = joinRef.toIntOrNull()?.toString(), + ref = ref.toIntOrNull()?.toString() ?: "", + topic = topic, + event = event, + rawPayload = result, + payloadJson = payload ) } diff --git a/src/main/kotlin/org/phoenixframework/Message.kt b/src/main/kotlin/org/phoenixframework/Message.kt index 40e7462..ed177b0 100644 --- a/src/main/kotlin/org/phoenixframework/Message.kt +++ b/src/main/kotlin/org/phoenixframework/Message.kt @@ -37,7 +37,10 @@ data class Message( val event: String = "", /** The raw payload of the message. It is recommended that you use `payload` instead. */ - internal val rawPayload: Payload = HashMap() + internal val rawPayload: Payload = HashMap(), + + /** The payload, as a json string */ + val payloadJson: String = "" ) { /** The payload of the message */ diff --git a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt index 41efcad..0bb0278 100644 --- a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt +++ b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt @@ -43,7 +43,6 @@ internal class DefaultsTest { assertThat(reconnect(5)).isEqualTo(10_000) } - @Test internal fun `decoder converts json array into message`() { val v2Json = """ @@ -58,6 +57,60 @@ internal class DefaultsTest { assertThat(message.payload).isEqualTo(mapOf("message" to "Hi", "name" to "Tester")) } + @Test + internal fun `decoder provides raw json payload`() { + val v2Json = """ + [1,2,"room:lobby","shout",{"message":"Hi","name":"Tester","count":15,"ratio":0.2}] + """.trimIndent() + + val message = Defaults.decode(v2Json) + assertThat(message.joinRef).isEqualTo("1") + assertThat(message.ref).isEqualTo("2") + assertThat(message.topic).isEqualTo("room:lobby") + assertThat(message.event).isEqualTo("shout") + assertThat(message.payloadJson).isEqualTo("{\"message\":\"Hi\",\"name\":\"Tester\",\"count\":15,\"ratio\":0.2}") + assertThat(message.payload).isEqualTo(mapOf( + "message" to "Hi", + "name" to "Tester", + "count" to 15.0, // Note that this is a bug and should eventually be removed + "ratio" to 0.2 + )) + } + + @Test + internal fun `decoder decodes a status`() { + val v2Json = """ + [1,2,"room:lobby","phx_reply",{"response":{"message":"Hi","name":"Tester","count":15,"ratio":0.2},"status":"ok"}] + """.trimIndent() + + val message = Defaults.decode(v2Json) + assertThat(message.joinRef).isEqualTo("1") + assertThat(message.ref).isEqualTo("2") + assertThat(message.topic).isEqualTo("room:lobby") + assertThat(message.event).isEqualTo("phx_reply") + assertThat(message.payloadJson).isEqualTo("{\"message\":\"Hi\",\"name\":\"Tester\",\"count\":15,\"ratio\":0.2}") + assertThat(message.payload).isEqualTo(mapOf( + "message" to "Hi", + "name" to "Tester", + "count" to 15.0, // Note that this is a bug and should eventually be removed + "ratio" to 0.2 + )) + } + + @Test + internal fun `decoder decodes a non-json payload`() { + val v2Json = """ + [1,2,"room:lobby","phx_reply",{"response":"hello","status":"ok"}] + """.trimIndent() + + val message = Defaults.decode(v2Json) + assertThat(message.payloadJson).isEqualTo("\"hello\"") + assertThat(message.payload).isEqualTo(mapOf( + "response" to "hello", + "status" to "ok" + )) + } + @Test internal fun `encode converts message into json`() { val body = listOf(null, null, "topic", "event", mapOf("one" to "two")) From 418d47eaac6cc0c8ae8b0f33f470f791f8034a0c Mon Sep 17 00:00:00 2001 From: dsrees Date: Fri, 9 Jun 2023 20:42:16 -0400 Subject: [PATCH 02/17] Prepare version 1.1.0 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9ca88c2..97b655e 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.0.1' + implementation 'com.github.dsrees:JavaPhoenixClient:1.1.0' } ``` diff --git a/build.gradle b/build.gradle index 99333e0..126826d 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.0.1' +version '1.1.0' sourceCompatibility = 1.8 From dbf5a6ae2d85c2068dd4e986b84ade04942ecbf3 Mon Sep 17 00:00:00 2001 From: dsrees Date: Fri, 9 Jun 2023 21:12:48 -0400 Subject: [PATCH 03/17] Prepare version 1.1.1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 126826d..85e1040 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.0' +version '1.1.1' sourceCompatibility = 1.8 From cd9ae55ce8bbdac9c8998a9b7f70891c3cdddb22 Mon Sep 17 00:00:00 2001 From: dsrees Date: Mon, 12 Jun 2023 11:14:47 -0400 Subject: [PATCH 04/17] Fixed issue with new message parser --- .../kotlin/org/phoenixframework/Defaults.kt | 37 ++++++++++++------- .../org/phoenixframework/DefaultsTest.kt | 4 +- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/org/phoenixframework/Defaults.kt b/src/main/kotlin/org/phoenixframework/Defaults.kt index 973b6ce..e1b1aa8 100644 --- a/src/main/kotlin/org/phoenixframework/Defaults.kt +++ b/src/main/kotlin/org/phoenixframework/Defaults.kt @@ -29,7 +29,9 @@ import com.google.gson.JsonObject import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken import okhttp3.HttpUrl +import org.phoenixframework.Defaults.gson import java.net.URL +import javax.swing.text.html.HTML.Tag.P object Defaults { @@ -68,30 +70,39 @@ object Defaults { @Suppress("UNCHECKED_CAST") val decode: DecodeClosure = { rawMessage -> + val parseValue: (String) -> String? = { value -> + when(value) { + "null" -> null + else -> value.replace("\"", "") + } + } + var message = rawMessage message = message.removeRange(0, 1) // remove '[' - val joinRef = message.takeWhile { it != ',' } // take join ref, 'null' or '5' + val joinRef = message.takeWhile { it != ',' } // take "join ref", "null" or "\"5\"" message = message.removeRange(0, joinRef.length) // remove join ref message = message.removeRange(0, 1) // remove ',' - val ref = message.takeWhile { it != ',' } // take ref, 'null' or '5' + val ref = message.takeWhile { it != ',' } // take ref, "null" or "\"5\"" message = message.removeRange(0, ref.length) // remove ref - message = message.removeRange(0, 2) // remove ',"' + message = message.removeRange(0, 1) // remove ',' - val topic = message.takeWhile { it != '"' } + val topic = message.takeWhile { it != ',' } // take topic, "\"topic\"" message = message.removeRange(0, topic.length) - message = message.removeRange(0, 3) // remove '","' + message = message.removeRange(0, 1) // remove ',' - val event = message.takeWhile { it != '"' } + val event = message.takeWhile { it != ',' } // take event, "\"phx_reply\"" message = message.removeRange(0, event.length) - message = message.removeRange(0, 2) // remove '",' + message = message.removeRange(0, 1) // remove ',' - val remaining = message.removeRange(message.length - 1, message.length) + var remaining = message.removeRange(message.length - 1, message.length) // remove ']' + // Payload should now just be "{"message":"hello","from":"user_1"}" or + // "{"response": {"message":"hello","from":"user_1"}},"status":"ok"}", flatten. val jsonObj = gson.fromJson(remaining, JsonObject::class.java) val response = jsonObj.get("response") - val payload = response?.let { gson.toJson(response) } ?: remaining + val payload = response?.let { gson.toJson(response) } ?: remaining val anyType = object : TypeToken>() {}.type val result = gson.fromJson>(remaining, anyType) @@ -99,10 +110,10 @@ object Defaults { // vsn=2.0.0 message structure // [join_ref, ref, topic, event, payload] Message( - joinRef = joinRef.toIntOrNull()?.toString(), - ref = ref.toIntOrNull()?.toString() ?: "", - topic = topic, - event = event, + joinRef = parseValue(joinRef), + ref = parseValue(ref) ?: "", + topic = parseValue(topic) ?: "", + event = parseValue(event) ?: "", rawPayload = result, payloadJson = payload ) diff --git a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt index 0bb0278..f26290c 100644 --- a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt +++ b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt @@ -60,7 +60,7 @@ internal class DefaultsTest { @Test internal fun `decoder provides raw json payload`() { val v2Json = """ - [1,2,"room:lobby","shout",{"message":"Hi","name":"Tester","count":15,"ratio":0.2}] + ["1","2","room:lobby","shout",{"message":"Hi","name":"Tester","count":15,"ratio":0.2}] """.trimIndent() val message = Defaults.decode(v2Json) @@ -80,7 +80,7 @@ internal class DefaultsTest { @Test internal fun `decoder decodes a status`() { val v2Json = """ - [1,2,"room:lobby","phx_reply",{"response":{"message":"Hi","name":"Tester","count":15,"ratio":0.2},"status":"ok"}] + ["1","2","room:lobby","phx_reply",{"response":{"message":"Hi","name":"Tester","count":15,"ratio":0.2},"status":"ok"}] """.trimIndent() val message = Defaults.decode(v2Json) From 0a932c6d241b8f60b3c7a6a1dfe1da644e9d5eea Mon Sep 17 00:00:00 2001 From: dsrees Date: Mon, 12 Jun 2023 11:47:16 -0400 Subject: [PATCH 05/17] Prepare version 1.1.2 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 97b655e..83baa30 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.1.0' + implementation 'com.github.dsrees:JavaPhoenixClient:1.1.2' } ``` diff --git a/build.gradle b/build.gradle index 85e1040..33be2cd 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.1' +version '1.1.2' sourceCompatibility = 1.8 From 48a27182eee3c7bf78a891164af651f9c98559b5 Mon Sep 17 00:00:00 2001 From: dsrees Date: Mon, 12 Jun 2023 14:23:42 -0400 Subject: [PATCH 06/17] Do not lose payloadJson in trigger --- .../kotlin/org/phoenixframework/Channel.kt | 12 ++++++---- .../org/phoenixframework/DefaultsTest.kt | 24 ++++++++++++++++++- .../org/phoenixframework/MessageTest.kt | 4 ++-- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/org/phoenixframework/Channel.kt b/src/main/kotlin/org/phoenixframework/Channel.kt index dd594f3..0794cfb 100644 --- a/src/main/kotlin/org/phoenixframework/Channel.kt +++ b/src/main/kotlin/org/phoenixframework/Channel.kt @@ -224,7 +224,7 @@ class Channel( // Perform when the join reply is received this.on(Event.REPLY) { message -> - this.trigger(replyEventName(message.ref), message.rawPayload, message.ref, message.joinRef) + this.trigger(replyEventName(message.ref), message.rawPayload, message.ref, message.joinRef, message.payloadJson) } } @@ -383,18 +383,20 @@ class Channel( event: Event, payload: Payload = hashMapOf(), ref: String = "", - joinRef: String? = null + joinRef: String? = null, + payloadJson: String = "" ) { - this.trigger(event.value, payload, ref, joinRef) + this.trigger(event.value, payload, ref, joinRef, payloadJson) } internal fun trigger( event: String, payload: Payload = hashMapOf(), ref: String = "", - joinRef: String? = null + joinRef: String? = null, + payloadJson: String = "" ) { - this.trigger(Message(joinRef, ref, topic, event, payload)) + this.trigger(Message(joinRef, ref, topic, event, payload, payloadJson)) } internal fun trigger(message: Message) { diff --git a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt index f26290c..bf2da9b 100644 --- a/src/test/kotlin/org/phoenixframework/DefaultsTest.kt +++ b/src/test/kotlin/org/phoenixframework/DefaultsTest.kt @@ -97,10 +97,32 @@ internal class DefaultsTest { )) } + + + @Test + internal fun `decoder decodes an error`() { + val v2Json = """ + ["6","8","drivers:self","phx_reply",{"response":{"details":"invalid code specified"},"status":"error"}] + """.trimIndent() + + val message = Defaults.decode(v2Json) + assertThat(message.payloadJson).isEqualTo("{\"details\":\"invalid code specified\"}") + assertThat(message.rawPayload).isEqualTo(mapOf( + "response" to mapOf( + "details" to "invalid code specified" + ), + "status" to "error" + )) + assertThat(message.payload).isEqualTo(mapOf( + "details" to "invalid code specified" + )) + + } + @Test internal fun `decoder decodes a non-json payload`() { val v2Json = """ - [1,2,"room:lobby","phx_reply",{"response":"hello","status":"ok"}] + ["1","2","room:lobby","phx_reply",{"response":"hello","status":"ok"}] """.trimIndent() val message = Defaults.decode(v2Json) diff --git a/src/test/kotlin/org/phoenixframework/MessageTest.kt b/src/test/kotlin/org/phoenixframework/MessageTest.kt index 0a555d0..2dcd321 100644 --- a/src/test/kotlin/org/phoenixframework/MessageTest.kt +++ b/src/test/kotlin/org/phoenixframework/MessageTest.kt @@ -14,7 +14,7 @@ class MessageTest { @Test internal fun `jsonParsing parses normal message`() { val json = """ - [null, "6", "my-topic", "update", {"user": "James S.", "message": "This is a test"}] + [null,"6","my-topic","update",{"user":"James S.","message":"This is a test"}] """.trimIndent() val message = Defaults.decode.invoke(json) @@ -30,7 +30,7 @@ class MessageTest { @Test internal fun `jsonParsing parses a reply`() { val json = """ - [null, "6", "my-topic", "phx_reply", {"response": {"user": "James S.","message": "This is a test"},"status": "ok"}] + [null,"6","my-topic","phx_reply",{"response":{"user":"James S.","message":"This is a test"},"status": "ok"}] """.trimIndent() val message = Defaults.decode.invoke(json) From 52484478caaef77c4e09dbe61e8808b9817b7dd4 Mon Sep 17 00:00:00 2001 From: dsrees Date: Mon, 12 Jun 2023 14:24:18 -0400 Subject: [PATCH 07/17] Prepare version 1.1.3 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 83baa30..03d8d55 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.1.2' + implementation 'com.github.dsrees:JavaPhoenixClient:1.1.3' } ``` diff --git a/build.gradle b/build.gradle index 33be2cd..82d3fca 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.2' +version '1.1.3' sourceCompatibility = 1.8 From 28f008657ad75f05239dde9af493654635690458 Mon Sep 17 00:00:00 2001 From: Andriy Shevtsov Date: Wed, 2 Aug 2023 17:04:28 +0300 Subject: [PATCH 08/17] Fix WebSocket not closed in onClosing This is the same as https://github.com/dsrees/JavaPhoenixClient/pull/90 but with unit test update --- src/main/kotlin/org/phoenixframework/Transport.kt | 1 + src/test/kotlin/org/phoenixframework/WebSocketTransportTest.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/kotlin/org/phoenixframework/Transport.kt b/src/main/kotlin/org/phoenixframework/Transport.kt index 25c8818..738fad6 100644 --- a/src/main/kotlin/org/phoenixframework/Transport.kt +++ b/src/main/kotlin/org/phoenixframework/Transport.kt @@ -155,6 +155,7 @@ class WebSocketTransport( override fun onClosing(webSocket: WebSocket, code: Int, reason: String) { this.readyState = Transport.ReadyState.CLOSING + webSocket.close(code, reason) } override fun onMessage(webSocket: WebSocket, text: String) { diff --git a/src/test/kotlin/org/phoenixframework/WebSocketTransportTest.kt b/src/test/kotlin/org/phoenixframework/WebSocketTransportTest.kt index 381b5ed..b9a7846 100644 --- a/src/test/kotlin/org/phoenixframework/WebSocketTransportTest.kt +++ b/src/test/kotlin/org/phoenixframework/WebSocketTransportTest.kt @@ -136,6 +136,7 @@ class WebSocketTransportTest { transport.readyState = Transport.ReadyState.OPEN transport.onClosing(mockWebSocket, 10, "reason") + verify(mockWebSocket).close(10, "reason") assertThat(transport.readyState).isEqualTo(Transport.ReadyState.CLOSING) } From de1213b4a7a8ebb68b7ef073048828fbd0a2bd6c Mon Sep 17 00:00:00 2001 From: dsrees Date: Wed, 2 Aug 2023 11:43:38 -0400 Subject: [PATCH 09/17] Prepare version 1.1.4 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 03d8d55..c59011f 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.1.3' + implementation 'com.github.dsrees:JavaPhoenixClient:1.1.4' } ``` diff --git a/build.gradle b/build.gradle index 82d3fca..f7f7b1f 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.3' +version '1.1.4' sourceCompatibility = 1.8 From 505b28844ce9b3f540e5c03e42ed145b733fc8e1 Mon Sep 17 00:00:00 2001 From: Andrii Horishnii Date: Wed, 4 Oct 2023 18:10:33 +0300 Subject: [PATCH 10/17] Fix the ability to set custom reconnectAfterMs --- src/main/kotlin/org/phoenixframework/Socket.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/org/phoenixframework/Socket.kt b/src/main/kotlin/org/phoenixframework/Socket.kt index 73f5e23..253df13 100644 --- a/src/main/kotlin/org/phoenixframework/Socket.kt +++ b/src/main/kotlin/org/phoenixframework/Socket.kt @@ -273,7 +273,7 @@ class Socket( // Create reconnect timer this.reconnectTimer = TimeoutTimer( dispatchQueue = dispatchQueue, - timerCalculation = reconnectAfterMs, + timerCalculation = { reconnectAfterMs(it) }, callback = { this.logItems("Socket attempting to reconnect") this.teardown { this.connect() } From ac5b9685d84c93b4a6e8320619aa4d685e745c53 Mon Sep 17 00:00:00 2001 From: dsrees Date: Wed, 4 Oct 2023 12:17:24 -0400 Subject: [PATCH 11/17] Prepare version 1.1.5 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c59011f..4faf647 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.1.4' + implementation 'com.github.dsrees:JavaPhoenixClient:1.1.5' } ``` diff --git a/build.gradle b/build.gradle index f7f7b1f..41118db 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.4' +version '1.1.5' sourceCompatibility = 1.8 From 3d5200748be7ff53af83c2a4be81b2204a1e99a3 Mon Sep 17 00:00:00 2001 From: dsrees Date: Wed, 4 Oct 2023 12:49:42 -0400 Subject: [PATCH 12/17] Upgraded kotlin to 1.8.x, gradle to 7.x, OkHttp to 4.x --- ChatExample/app/build.gradle | 25 +++++------ .../app/libs/JavaPhoenixClient-0.7.0.jar | Bin 114642 -> 0 bytes .../app/libs/JavaPhoenixClient-1.1.5.jar | Bin 0 -> 119906 bytes ChatExample/app/src/main/AndroidManifest.xml | 4 +- .../github/dsrees/chatexample/MainActivity.kt | 40 +++++++++--------- .../dsrees/chatexample/MessagesAdapter.kt | 9 ++-- ChatExample/build.gradle | 6 +-- .../gradle/wrapper/gradle-wrapper.properties | 4 +- build.gradle | 14 +++--- gradle/wrapper/gradle-wrapper.properties | 4 +- .../kotlin/org/phoenixframework/Defaults.kt | 5 ++- 11 files changed, 54 insertions(+), 57 deletions(-) delete mode 100644 ChatExample/app/libs/JavaPhoenixClient-0.7.0.jar create mode 100644 ChatExample/app/libs/JavaPhoenixClient-1.1.5.jar diff --git a/ChatExample/app/build.gradle b/ChatExample/app/build.gradle index 18dd1a7..6ddf2db 100644 --- a/ChatExample/app/build.gradle +++ b/ChatExample/app/build.gradle @@ -1,15 +1,12 @@ apply plugin: 'com.android.application' - apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' - android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { applicationId "com.github.dsrees.chatexample" minSdkVersion 19 - targetSdkVersion 30 + targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -21,6 +18,10 @@ android { } } + buildFeatures { + viewBinding true + } + compileOptions { targetCompatibility = "8" sourceCompatibility = "8" @@ -40,14 +41,10 @@ dependencies { // implementation 'com.github.dsrees:JavaPhoenixClient:0.3.4' - implementation "com.google.code.gson:gson:2.8.5" - implementation "com.squareup.okhttp3:okhttp:3.12.2" - - - implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - - implementation 'androidx.appcompat:appcompat:1.0.2' - implementation 'androidx.recyclerview:recyclerview:1.0.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation "com.google.code.gson:gson:2.10.1" + implementation "com.squareup.okhttp3:okhttp:4.11.0" + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.recyclerview:recyclerview:1.3.1' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' } diff --git a/ChatExample/app/libs/JavaPhoenixClient-0.7.0.jar b/ChatExample/app/libs/JavaPhoenixClient-0.7.0.jar deleted file mode 100644 index 6dbc43756627ba0843fb185e8b90a642370783fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114642 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

(y^tUf}zeTTLm`8-O;;4;cNPY~#K@ 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 %XZ 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 {ADu0O| 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 Q@)+jeX^Lt(sJ$@$2iBS^ApigX diff --git a/ChatExample/app/libs/JavaPhoenixClient-1.1.5.jar b/ChatExample/app/libs/JavaPhoenixClient-1.1.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..dae21062e7693675903f38b1d19d221d5688a73f GIT binary patch literal 119906 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 - + diff --git a/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MainActivity.kt b/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MainActivity.kt index 6e225dd..9a4caa5 100644 --- a/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MainActivity.kt +++ b/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MainActivity.kt @@ -3,11 +3,8 @@ package com.github.dsrees.chatexample import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log -import android.widget.ArrayAdapter -import android.widget.Button -import android.widget.EditText import androidx.recyclerview.widget.LinearLayoutManager -import kotlinx.android.synthetic.main.activity_main.* +import com.github.dsrees.chatexample.databinding.ActivityMainBinding import org.phoenixframework.Channel import org.phoenixframework.Socket @@ -17,44 +14,47 @@ class MainActivity : AppCompatActivity() { const val TAG = "MainActivity" } + private lateinit var binding: ActivityMainBinding + private val messagesAdapter = MessagesAdapter() private val layoutManager = LinearLayoutManager(this) // Use when connecting to https://github.com/dwyl/phoenix-chat-example - // private val socket = Socket("https://phxchat.herokuapp.com/socket/websocket") - // private val topic = "room:lobby" + private val socket = Socket("https://phoenix-chat.fly.dev/socket/websocket") + private val topic = "room:lobby" // Use when connecting to local server - private val socket = Socket("ws://10.0.2.2:4000/socket/websocket") - private val topic = "rooms:lobby" + // private val socket = Socket("ws://10.0.2.2:4000/socket/websocket") + // private val topic = "rooms:lobby" private var lobbyChannel: Channel? = null private val username: String - get() = username_input.text.toString() + get() = binding.usernameInput.text.toString() private val message: String - get() = message_input.text.toString() + get() = binding.messageInput.text.toString() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + this.binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) layoutManager.stackFromEnd = true - messages_recycler_view.layoutManager = layoutManager - messages_recycler_view.adapter = messagesAdapter + binding.messagesRecyclerView.layoutManager = layoutManager + binding.messagesRecyclerView.adapter = messagesAdapter socket.onOpen { this.addText("Socket Opened") - runOnUiThread { connect_button.text = "Disconnect" } + runOnUiThread { binding.connectButton.text = "Disconnect" } } socket.onClose { this.addText("Socket Closed") - runOnUiThread { connect_button.text = "Connect" } + runOnUiThread { binding.connectButton.text = "Connect" } } socket.onError { throwable, response -> @@ -67,7 +67,7 @@ class MainActivity : AppCompatActivity() { } - connect_button.setOnClickListener { + binding.connectButton.setOnClickListener { if (socket.isConnected) { this.disconnectAndLeave() } else { @@ -76,7 +76,7 @@ class MainActivity : AppCompatActivity() { } } - send_button.setOnClickListener { sendMessage() } + binding.sendButton.setOnClickListener { sendMessage() } } private fun sendMessage() { @@ -85,7 +85,7 @@ class MainActivity : AppCompatActivity() { ?.receive("ok") { Log.d(TAG, "success $it") } ?.receive("error") { Log.d(TAG, "error $it") } - message_input.text.clear() + binding.messageInput.text.clear() } private fun disconnectAndLeave() { @@ -132,9 +132,7 @@ class MainActivity : AppCompatActivity() { private fun addText(message: String) { runOnUiThread { this.messagesAdapter.add(message) - layoutManager.smoothScrollToPosition(messages_recycler_view, null, messagesAdapter.itemCount) + layoutManager.smoothScrollToPosition(binding.messagesRecyclerView, null, messagesAdapter.itemCount) } - } - } diff --git a/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MessagesAdapter.kt b/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MessagesAdapter.kt index e99b294..143df58 100644 --- a/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MessagesAdapter.kt +++ b/ChatExample/app/src/main/java/com/github/dsrees/chatexample/MessagesAdapter.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView +import com.github.dsrees.chatexample.databinding.ItemMessageBinding class MessagesAdapter : RecyclerView.Adapter() { @@ -17,8 +18,8 @@ class MessagesAdapter : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view = LayoutInflater.from(parent.context).inflate(R.layout.item_message, parent, false) - return ViewHolder(view) + val binding = ItemMessageBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return ViewHolder(binding) } override fun getItemCount(): Int = messages.size @@ -27,8 +28,8 @@ class MessagesAdapter : RecyclerView.Adapter() { holder.label.text = messages[position] } - inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val label: TextView = itemView.findViewById(R.id.item_message_label) + inner class ViewHolder(binding: ItemMessageBinding) : RecyclerView.ViewHolder(binding.root) { + val label: TextView = binding.itemMessageLabel } } \ No newline at end of file diff --git a/ChatExample/build.gradle b/ChatExample/build.gradle index 5ff4b70..08b070b 100644 --- a/ChatExample/build.gradle +++ b/ChatExample/build.gradle @@ -1,17 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.31' + ext.kotlin_version = '1.8.0' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files } } diff --git a/ChatExample/gradle/wrapper/gradle-wrapper.properties b/ChatExample/gradle/wrapper/gradle-wrapper.properties index 3c4d55d..5fa6080 100644 --- a/ChatExample/gradle/wrapper/gradle-wrapper.properties +++ b/ChatExample/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue May 14 11:28:07 EDT 2019 +#Wed Oct 04 12:35:15 EDT 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/build.gradle b/build.gradle index 41118db..56ef6e9 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ buildscript { plugins { id 'java' id 'jacoco' - id 'org.jetbrains.kotlin.jvm' version '1.3.31' + id 'org.jetbrains.kotlin.jvm' version '1.8.0' } ext { @@ -47,16 +47,16 @@ test { } dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" - compile "com.google.code.gson:gson:2.8.5" - compile "com.squareup.okhttp3:okhttp:3.12.2" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" + implementation "com.google.code.gson:gson:2.10.1" + implementation "com.squareup.okhttp3:okhttp:4.11.0" testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1' - testCompile group: 'com.google.truth', name: 'truth', version: '1.1.3' - testCompile group: 'org.mockito', name: 'mockito-core', version: '4.0.0' - testCompile group: 'org.mockito.kotlin', name: 'mockito-kotlin', version: '4.0.0' + testImplementation group: 'com.google.truth', name: 'truth', version: '1.1.3' + testImplementation group: 'org.mockito', name: 'mockito-core', version: '4.0.0' + testImplementation group: 'org.mockito.kotlin', name: 'mockito-kotlin', version: '4.0.0' } jacocoTestReport { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d663d77..aa98239 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 18 20:34:38 EDT 2021 +#Wed Oct 04 12:21:20 EDT 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip diff --git a/src/main/kotlin/org/phoenixframework/Defaults.kt b/src/main/kotlin/org/phoenixframework/Defaults.kt index e1b1aa8..5c43d3e 100644 --- a/src/main/kotlin/org/phoenixframework/Defaults.kt +++ b/src/main/kotlin/org/phoenixframework/Defaults.kt @@ -29,6 +29,7 @@ import com.google.gson.JsonObject import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import org.phoenixframework.Defaults.gson import java.net.URL import javax.swing.text.html.HTML.Tag.P @@ -149,7 +150,7 @@ object Defaults { } // Add the VSN query parameter - var httpUrl = HttpUrl.parse(mutableUrl) + var httpUrl = mutableUrl.toHttpUrlOrNull() ?: throw IllegalArgumentException("invalid url: $endpoint") val httpBuilder = httpUrl.newBuilder() httpBuilder.addQueryParameter("vsn", vsn) @@ -162,6 +163,6 @@ object Defaults { } // Return the [URL] that will be used to establish a connection - return httpBuilder.build().url() + return httpBuilder.build().toUrl() } } \ No newline at end of file From 15369f9a1ebb50e5c0cb7c5612859b497ca59e19 Mon Sep 17 00:00:00 2001 From: dsrees Date: Wed, 4 Oct 2023 12:52:34 -0400 Subject: [PATCH 13/17] Prepare version 1.2.0 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4faf647..bbd5047 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.1.5' + implementation 'com.github.dsrees:JavaPhoenixClient:1.2.0' } ``` diff --git a/build.gradle b/build.gradle index 56ef6e9..5fec158 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.1.5' +version '1.2.0' sourceCompatibility = 1.8 From 52d5156a8545eb6311e550e6ceeec7e2cb67a7ef Mon Sep 17 00:00:00 2001 From: ccolorcat Date: Wed, 22 Nov 2023 22:31:33 +0800 Subject: [PATCH 14/17] feat: Allows channel creation using PayloadClosure Dynamic parameters may be required when creating a channel. For example, the parameters of joinPush may need to be changed during reconnection. --- .../kotlin/org/phoenixframework/Channel.kt | 14 +++++++--- .../kotlin/org/phoenixframework/Defaults.kt | 10 ++----- src/main/kotlin/org/phoenixframework/Push.kt | 21 +++++++++++++-- .../kotlin/org/phoenixframework/Socket.kt | 13 +++++++--- .../org/phoenixframework/ChannelTest.kt | 26 +++++++++++++++++++ .../org/phoenixframework/PresenceTest.kt | 18 ++++++------- .../kotlin/org/phoenixframework/SocketTest.kt | 2 +- 7 files changed, 76 insertions(+), 28 deletions(-) diff --git a/src/main/kotlin/org/phoenixframework/Channel.kt b/src/main/kotlin/org/phoenixframework/Channel.kt index 0794cfb..d6103ab 100644 --- a/src/main/kotlin/org/phoenixframework/Channel.kt +++ b/src/main/kotlin/org/phoenixframework/Channel.kt @@ -38,7 +38,7 @@ data class Binding( */ class Channel( val topic: String, - params: Payload, + paramsClosure: PayloadClosure, internal val socket: Socket ) { @@ -94,10 +94,10 @@ class Channel( internal var timeout: Long /** Params passed in through constructions and provided to the JoinPush */ - var params: Payload = params + var params: Payload + get() = joinPush.payload set(value) { joinPush.payload = value - field = value } /** Set to true once the channel has attempted to join */ @@ -121,6 +121,12 @@ class Channel( */ internal var onMessage: (Message) -> Message = { it } + constructor( + topic: String, + params: Payload, + socket: Socket + ) : this(topic, { params }, socket) + init { this.state = State.CLOSED this.bindings = ConcurrentLinkedQueue() @@ -148,7 +154,7 @@ class Channel( this.joinPush = Push( channel = this, event = Event.JOIN.value, - payload = params, + payloadClosure = paramsClosure, timeout = timeout) // Perform once the Channel has joined diff --git a/src/main/kotlin/org/phoenixframework/Defaults.kt b/src/main/kotlin/org/phoenixframework/Defaults.kt index 5c43d3e..06ecc9f 100644 --- a/src/main/kotlin/org/phoenixframework/Defaults.kt +++ b/src/main/kotlin/org/phoenixframework/Defaults.kt @@ -26,13 +26,9 @@ import com.google.gson.FieldNamingPolicy import com.google.gson.Gson import com.google.gson.GsonBuilder import com.google.gson.JsonObject -import com.google.gson.JsonParser import com.google.gson.reflect.TypeToken -import okhttp3.HttpUrl import okhttp3.HttpUrl.Companion.toHttpUrlOrNull -import org.phoenixframework.Defaults.gson import java.net.URL -import javax.swing.text.html.HTML.Tag.P object Defaults { @@ -156,10 +152,8 @@ object Defaults { httpBuilder.addQueryParameter("vsn", vsn) // Append any additional query params - paramsClosure.invoke()?.let { - it.forEach { (key, value) -> - httpBuilder.addQueryParameter(key, value.toString()) - } + paramsClosure.invoke().forEach { (key, value) -> + httpBuilder.addQueryParameter(key, value.toString()) } // Return the [URL] that will be used to establish a connection diff --git a/src/main/kotlin/org/phoenixframework/Push.kt b/src/main/kotlin/org/phoenixframework/Push.kt index 5234205..432e4bf 100644 --- a/src/main/kotlin/org/phoenixframework/Push.kt +++ b/src/main/kotlin/org/phoenixframework/Push.kt @@ -32,8 +32,8 @@ class Push( val channel: Channel, /** The event the Push is targeting */ val event: String, - /** The message to be sent */ - var payload: Payload = mapOf(), + /** Closure that allows changing parameters sent during push */ + var payloadClosure: PayloadClosure, /** Duration before the message is considered timed out and failed to send */ var timeout: Long = Defaults.TIMEOUT ) { @@ -56,6 +56,23 @@ class Push( /** The event that is associated with the reference ID of the Push */ var refEvent: String? = null + var payload: Payload + get() = payloadClosure.invoke() + set(value) { + payloadClosure = { value } + } + + constructor( + /** The channel the Push is being sent through */ + channel: Channel, + /** The event the Push is targeting */ + event: String, + /** The message to be sent */ + payload: Payload = mapOf(), + /** Duration before the message is considered timed out and failed to send */ + timeout: Long = Defaults.TIMEOUT + ) : this(channel, event, { payload }, timeout) + //------------------------------------------------------------------------------ // Public //------------------------------------------------------------------------------ diff --git a/src/main/kotlin/org/phoenixframework/Socket.kt b/src/main/kotlin/org/phoenixframework/Socket.kt index 253df13..4d3ddef 100644 --- a/src/main/kotlin/org/phoenixframework/Socket.kt +++ b/src/main/kotlin/org/phoenixframework/Socket.kt @@ -100,7 +100,7 @@ const val WS_CLOSE_ABNORMAL = 1006 /** * A closure that will return an optional Payload */ -typealias PayloadClosure = () -> Payload? +typealias PayloadClosure = () -> Payload /** A closure that will encode a Map into a JSON String */ typealias EncodeClosure = (Any) -> String @@ -242,7 +242,7 @@ class Socket( */ constructor( url: String, - params: Payload? = null, + params: Payload = mapOf(), vsn: String = Defaults.VSN, encode: EncodeClosure = Defaults.encode, decode: DecodeClosure = Defaults.decode, @@ -358,9 +358,14 @@ class Socket( fun channel( topic: String, params: Payload = mapOf() + ): Channel = this.channel(topic) { params } + + fun channel( + topic: String, + paramsClosure: PayloadClosure ): Channel { - val channel = Channel(topic, params, this) - this.channels = this.channels + channel + val channel = Channel(topic, paramsClosure, this) + this.channels += channel return channel } diff --git a/src/test/kotlin/org/phoenixframework/ChannelTest.kt b/src/test/kotlin/org/phoenixframework/ChannelTest.kt index bd83c49..78e3820 100644 --- a/src/test/kotlin/org/phoenixframework/ChannelTest.kt +++ b/src/test/kotlin/org/phoenixframework/ChannelTest.kt @@ -149,6 +149,32 @@ class ChannelTest { /* End JoinParams */ } + + @Nested + @DisplayName("join paramsClosure") + inner class JoinParamsClosure { + @Test + internal fun `updating join params closure`() { + val paramsClosure = { mapOf("value" to 1) } + val change = mapOf("value" to 2) + + channel = Channel("topic", paramsClosure, socket) + val joinPush = channel.joinPush + + assertThat(joinPush.channel).isEqualTo(channel) + assertThat(joinPush.payload["value"]).isEqualTo(1) + assertThat(joinPush.event).isEqualTo("phx_join") + assertThat(joinPush.timeout).isEqualTo(10_000L) + + channel.params = change + assertThat(joinPush.channel).isEqualTo(channel) + assertThat(joinPush.payload["value"]).isEqualTo(2) + assertThat(channel.params["value"]).isEqualTo(2) + assertThat(joinPush.event).isEqualTo("phx_join") + assertThat(joinPush.timeout).isEqualTo(10_000L) + } + } + @Nested @DisplayName("join") inner class Join { diff --git a/src/test/kotlin/org/phoenixframework/PresenceTest.kt b/src/test/kotlin/org/phoenixframework/PresenceTest.kt index 4eaee21..2874e1f 100644 --- a/src/test/kotlin/org/phoenixframework/PresenceTest.kt +++ b/src/test/kotlin/org/phoenixframework/PresenceTest.kt @@ -196,7 +196,7 @@ class PresenceTest { @Test internal fun `onJoins new presences and onLeaves left presences`() { val newState = fixState - var state = mutableMapOf( + var state: MutableMap>>> = mutableMapOf( "u4" to mutableMapOf("metas" to listOf(mapOf("id" to 4, "phx_ref" to "4")))) val joined: PresenceDiff = mutableMapOf() @@ -245,9 +245,9 @@ class PresenceTest { @Test internal fun `onJoins only newly added metas`() { - var state = mutableMapOf( + var state: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf(mapOf("id" to 3, "phx_ref" to "3")))) - val newState = mutableMapOf( + val newState: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf( mapOf("id" to 3, "phx_ref" to "3"), mapOf("id" to 3, "phx_ref" to "3.new") @@ -285,9 +285,9 @@ class PresenceTest { @Test internal fun `onLeaves only newly removed metas`() { - val newState = mutableMapOf( + val newState: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf(mapOf("id" to 3, "phx_ref" to "3")))) - var state = mutableMapOf( + var state: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf( mapOf("id" to 3, "phx_ref" to "3"), mapOf("id" to 3, "phx_ref" to "3.left") @@ -326,13 +326,13 @@ class PresenceTest { @Test internal fun `syncs both joined and left metas`() { - val newState = mutableMapOf( + val newState: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf( mapOf("id" to 3, "phx_ref" to "3"), mapOf("id" to 3, "phx_ref" to "3.new") ))) - var state = mutableMapOf( + var state: MutableMap>>> = mutableMapOf( "u3" to mutableMapOf("metas" to listOf( mapOf("id" to 3, "phx_ref" to "3"), mapOf("id" to 3, "phx_ref" to "3.left") @@ -421,13 +421,13 @@ class PresenceTest { @Test internal fun `removes meta while leaving key if other metas exist`() { - var state = mutableMapOf( + var state: MutableMap>>> = mutableMapOf( "u1" to mutableMapOf("metas" to listOf( mapOf("id" to 1, "phx_ref" to "1"), mapOf("id" to 1, "phx_ref" to "1.2") ))) - val leaves = mutableMapOf( + val leaves: MutableMap>>> = mutableMapOf( "u1" to mutableMapOf("metas" to listOf( mapOf("id" to 1, "phx_ref" to "1") ))) diff --git a/src/test/kotlin/org/phoenixframework/SocketTest.kt b/src/test/kotlin/org/phoenixframework/SocketTest.kt index 5fc512f..6bf44a4 100644 --- a/src/test/kotlin/org/phoenixframework/SocketTest.kt +++ b/src/test/kotlin/org/phoenixframework/SocketTest.kt @@ -48,7 +48,7 @@ class SocketTest { internal fun `sets defaults`() { val socket = Socket("wss://localhost:4000/socket") - assertThat(socket.paramsClosure.invoke()).isNull() + assertThat(socket.paramsClosure.invoke()).isEmpty() assertThat(socket.channels).isEmpty() assertThat(socket.sendBuffer).isEmpty() assertThat(socket.ref).isEqualTo(0) From f6355862d965edb0cdef868f69d79b7166691507 Mon Sep 17 00:00:00 2001 From: dsrees Date: Fri, 24 Nov 2023 11:12:23 -0500 Subject: [PATCH 15/17] Prepare version 1.3.0 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bbd5047..2b1bc3b 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.2.0' + implementation 'com.github.dsrees:JavaPhoenixClient:1.3.0' } ``` diff --git a/build.gradle b/build.gradle index 5fec158..e7d2938 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.2.0' +version '1.3.0' sourceCompatibility = 1.8 From 60d3e4992e8a8f49ea49379ce4db09bd299b4726 Mon Sep 17 00:00:00 2001 From: ccolorcat Date: Mon, 4 Dec 2023 22:15:46 +0800 Subject: [PATCH 16/17] feat: Allow receiving all messages with a non-null 'status' (#100) In addition to the status "ok", "error" and "timeout", there may be custom status such as "approved". It would be more convenient if all messages with a non-null "status" could be received in the same callback. --- src/main/kotlin/org/phoenixframework/Push.kt | 26 ++++++++++ .../org/phoenixframework/ChannelTest.kt | 52 +++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/src/main/kotlin/org/phoenixframework/Push.kt b/src/main/kotlin/org/phoenixframework/Push.kt index 432e4bf..75c75f1 100644 --- a/src/main/kotlin/org/phoenixframework/Push.kt +++ b/src/main/kotlin/org/phoenixframework/Push.kt @@ -47,6 +47,9 @@ class Push( /** Hooks into a Push. Where .receive("ok", callback(Payload)) are stored */ var receiveHooks: MutableMap Unit)>> = HashMap() + /** Hooks into a Push. Where .receiveAll(callback(status, message)) are stored */ + private var receiveAllHooks: MutableList<(status: String, message: Message) -> Unit> = mutableListOf() + /** True if the Push has been sent */ var sent: Boolean = false @@ -117,6 +120,28 @@ class Push( return this } + /** + * Receives any event that was a response to an outbound message. + * + * Example: + * channel + * .send("event", mPayload) + * .receive { status, message -> + * print(status) // "ok" + * } + */ + fun receive(callback: (status: String, message: Message) -> Unit): Push { + // If the message has already been received, pass it to the callback. + receivedMessage?.let { + val status = it.status + if (status != null) { + callback(status, it) + } + } + receiveAllHooks.add(callback) + return this + } + //------------------------------------------------------------------------------ // Internal //------------------------------------------------------------------------------ @@ -182,6 +207,7 @@ class Push( */ private fun matchReceive(status: String, message: Message) { receiveHooks[status]?.forEach { it(message) } + receiveAllHooks.forEach { it(status, message) } } /** Removes receive hook from Channel regarding this Push */ diff --git a/src/test/kotlin/org/phoenixframework/ChannelTest.kt b/src/test/kotlin/org/phoenixframework/ChannelTest.kt index 78e3820..9965caa 100644 --- a/src/test/kotlin/org/phoenixframework/ChannelTest.kt +++ b/src/test/kotlin/org/phoenixframework/ChannelTest.kt @@ -28,6 +28,7 @@ class ChannelTest { @Mock lateinit var socket: Socket @Mock lateinit var mockCallback: ((Message) -> Unit) + @Mock lateinit var mockStatusCallback: ((String, Message) -> Unit) private val kDefaultRef = "1" private val kDefaultTimeout = 10_000L @@ -410,6 +411,11 @@ class ChannelTest { joinPush.trigger("error", mapOf("a" to "b")) } + private fun receivesApproved() { + fakeClock.tick(joinPush.timeout / 2) + joinPush.trigger("approved", mapOf("a" to "b")) + } + @Nested @DisplayName("receives 'ok'") inner class ReceivesOk { @@ -652,6 +658,52 @@ class ChannelTest { /* End ReceivesError */ } + + @Nested + @DisplayName("receives 'all status'") + inner class ReceivesAllStatus { + @Test + internal fun `triggers receive('error') callback after error response`() { + assertThat(channel.state).isEqualTo(Channel.State.JOINING) + joinPush.receive(mockStatusCallback) + + receivesError() + joinPush.trigger("error", kEmptyPayload) + verify(mockStatusCallback, times(1)).invoke(any(), any()) + } + + @Test + internal fun `triggers receive('error') callback if error response already received`() { + receivesError() + + joinPush.receive(mockStatusCallback) + + verify(mockStatusCallback).invoke(any(), any()) + } + + @Test + internal fun `triggers receive('approved') callback after approved response`() { + assertThat(channel.state).isEqualTo(Channel.State.JOINING) + joinPush.receive(mockStatusCallback) + + receivesApproved() + joinPush.trigger("approved", kEmptyPayload) + verify(mockStatusCallback, times(1)).invoke(any(), any()) + + } + + @Test + internal fun `triggers receive('approved') callback if approved response already received`() { + receivesApproved() + + joinPush.receive(mockStatusCallback) + + verify(mockStatusCallback).invoke(any(), any()) + } + + /* End ReceivesAllStatus */ + } + /* End JoinPush */ } From b314f940b78793ff51b465b5d11bfdd811b28d1b Mon Sep 17 00:00:00 2001 From: dsrees Date: Tue, 25 Jun 2024 08:48:57 -0400 Subject: [PATCH 17/17] Prepare version 1.3.1 --- README.md | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2b1bc3b..ecdb961 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ repositories { and then add the library. See [releases](https://github.com/dsrees/JavaPhoenixClient/releases) for the latest version ```$xslt dependencies { - implementation 'com.github.dsrees:JavaPhoenixClient:1.3.0' + implementation 'com.github.dsrees:JavaPhoenixClient:1.3.1' } ``` diff --git a/build.gradle b/build.gradle index e7d2938..78e6a8a 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,7 @@ apply plugin: "org.jetbrains.dokka" apply plugin: "com.vanniktech.maven.publish" group 'com.github.dsrees' -version '1.3.0' +version '1.3.1' sourceCompatibility = 1.8