Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .idea/modules/SocketclusterClientJava.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 9 additions & 5 deletions .idea/modules/SocketclusterClientJava_main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 9 additions & 5 deletions .idea/modules/SocketclusterClientJava_test.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 29 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
Java and Android Socketcluster Client
=====================================

This SocketCluster Java/Android Client fork has the following differences from upstream:
- [Jackson](https://github.com/FasterXML/jackson) JSON parser is used, instead of [JSON-java](https://github.com/stleary/JSON-java)
- [SocketCluster Minimal binary (sc-codec-min-bin) codec](https://github.com/SocketCluster/sc-codec-min-bin) support
- Underlying [nv-websocket-client](https://github.com/TakahikoKawasaki/nv-websocket-client) has been updated to the latest version
- Breaking: callback params now have Jackson `JsonNode` types, instead of upstream's `Object`

**Important Notes:** Due to using `jackson-databing` this library is significantly bigger in size than upstream (~2 Mb), so if binary codec support is not needed, consider using upstream instead.

Overview
--------
This client provides following functionality
Expand All @@ -9,37 +17,26 @@ This client provides following functionality
- Automatic reconnection
- Pub/sub
- Authentication (JWT)
- Binary codec support (`sc-codec-min-bin` included out-of-the-box)

License
-------
Apache License, Version 2.0

Gradle
------
For java

```Gradle
dependencies {
compile 'io.github.sac:SocketclusterClientJava:1.7.4'
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
```
for sample java examples visit [Java Demo](https://github.com/sacOO7/socketcluster-client-testing/tree/master/src/main/java)

For android

```Gradle
compile ('io.github.sac:SocketclusterClientJava:1.7.4'){
exclude group :'org.json', module: 'json'
dependencies {
implementation 'com.github.XDex:socketcluster-client-java:2.0.0'
}
```
for sample android demo visit [Android Demo](https://github.com/sacOO7/socketcluster-android-demo)


[ ![Download](https://api.bintray.com/packages/sacoo7/Maven/socketcluster-client/images/download.svg) ](https://bintray.com/sacoo7/Maven/socketcluster-client/_latestVersion)

<!---
Download [latest jar dependency](https://github.com/sacOO7/socketcluster-client-java/blob/master/out/artifacts/SocketclusterClientJava_main_jar/SocketclusterClientJava_main.jar?raw=true)
-->
[Download JAR](https://api.bintray.com/packages/sacoo7/Maven/socketcluster-client/images/download.svg)

Description
-----------
Expand Down Expand Up @@ -194,6 +191,20 @@ The object received can be String, Boolean, Long or JSONObject.

```

Codecs
------

Custom binary [SocketCluster codecs](https://github.com/SocketCluster/socketcluster#custom-codecs) are supported.
Support for [sc-codec-min-bin](https://github.com/SocketCluster/sc-codec-min-bin) is included out-of-the-box.

To enable a binary codec, just set it as follows on the SocketCluster `Socket`:

```java
socket.setCodec(new MinBinCodec());
```

Custom binary codecs must implement the `SocketClusterCodec` interface.

Implementing Pub-Sub via channels
---------------------------------

Expand Down
24 changes: 17 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ allprojects {
}

group 'io.github.sac'
version '1.7.4'
version '2.0.0'


allprojects {
Expand All @@ -28,6 +28,10 @@ allprojects {
apply plugin: 'maven-publish'
}

task wrapper(type: Wrapper) {
gradleVersion = '4.6'
}

task sourceJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allJava
Expand All @@ -38,13 +42,19 @@ task javadocJar(type: Jar, dependsOn: javadoc) {
from javadoc.destinationDir
}

jar {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}

publishing {
publications {
MyPublication(MavenPublication) {
from components.java
groupId 'io.github.sac'
artifactId 'SocketclusterClientJava'
version '1.7.4'
version '2.0.0'

artifact sourceJar {
classifier "sources"
Expand All @@ -71,15 +81,15 @@ bintray{
publicDownloadNumbers = true

version {
name = '1.7.4'
desc = 'Added method to Connect asynchronously with server'
vcsTag = '1.7.4'
name = '2.0.0'
desc = 'Switched to Jackson and implemented sc-min-bin codec support'
vcsTag = '2.0.0'
}

}
}

dependencies {
compile 'com.neovisionaries:nv-websocket-client:1.30'
compile group: 'org.json', name: 'json', version: '20090211'
implementation 'com.neovisionaries:nv-websocket-client:2.3'
implementation 'org.msgpack:jackson-dataformat-msgpack:0.8.15'
}
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Tue Nov 08 13:06:24 IST 2016
#Thu Mar 29 19:55:57 EEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
3 changes: 0 additions & 3 deletions src/main/java/META-INF/MANIFEST.MF

This file was deleted.

165 changes: 0 additions & 165 deletions src/main/java/Main.java

This file was deleted.

Loading