-
Notifications
You must be signed in to change notification settings - Fork 171
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2b5dfb9
commit cbd341c
Showing
6 changed files
with
156 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
help: ## print this message | ||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' | ||
|
||
build-site: ## build the site | ||
mvn javadoc:javadoc site -DskipTests | ||
|
||
.PHONY: build-site |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
## Compatibility | ||
|
||
| Client version | Engine.IO server | Socket.IO server | | ||
| -------------- | ---------------- | ---------------- | | ||
| 0.9.x | 1.x | 1.x | | ||
| 1.x | 3.x | 2.x | | ||
| WIP | 4.x | 3.x | | ||
|
||
## Installation | ||
The latest artifact is available on Maven Central. | ||
|
||
### Maven | ||
Add the following dependency to your `pom.xml`. | ||
|
||
```xml | ||
<dependencies> | ||
<dependency> | ||
<groupId>io.socket</groupId> | ||
<artifactId>engine.io-client</artifactId> | ||
<version>1.0.1</version> | ||
</dependency> | ||
</dependencies> | ||
``` | ||
|
||
### Gradle | ||
Add it as a gradle dependency for Android Studio, in `build.gradle`: | ||
|
||
```groovy | ||
compile ('io.socket:engine.io-client:1.0.1') { | ||
// excluding org.json which is provided by Android | ||
exclude group: 'org.json', module: 'json' | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
## Usage | ||
Engine.IO-client Java has the similar api with the JS client. You can use `Socket` to connect: | ||
|
||
```java | ||
socket = new Socket("ws://localhost"); | ||
socket.on(Socket.EVENT_OPEN, new Emitter.Listener() { | ||
@Override | ||
public void call(Object... args) { | ||
socket.send("hi"); | ||
socket.close(); | ||
} | ||
}); | ||
socket.open(); | ||
``` | ||
|
||
You can listen events as follows: | ||
|
||
```java | ||
socket.on(Socket.EVENT_MESSAGE, new Emitter.Listener() { | ||
@Override | ||
public void call(Object... args) { | ||
String data = (String)args[0]; | ||
} | ||
}).on(Socket.EVENT_ERROR, new Emitter.Listener() { | ||
@Override | ||
public void call(Object... args) { | ||
Exception err = (Exception)args[0]; | ||
} | ||
}); | ||
``` | ||
|
||
How to set options: | ||
|
||
```java | ||
opts = new Socket.Options(); | ||
opts.transports = new String[] {WebSocket.NAME}; | ||
|
||
socket = new Socket(opts); | ||
``` | ||
|
||
Sending and receiving binary data: | ||
|
||
```java | ||
socket = new Socket(); | ||
socket.on(Socket.EVENT_OPEN, new Emitter.Listener() { | ||
@Override | ||
public void call(Object... args) { | ||
// send binary data | ||
byte[] data = new byte[42]; | ||
socket.send(data); | ||
} | ||
}).on(Socket.EVENT_MESSAGE, new Emitter.Listener() { | ||
@Override | ||
public void call(Object... args) { | ||
// receive binary data | ||
byte[] data = (byte[])args[0]; | ||
} | ||
}); | ||
``` | ||
|
||
Use custom SSL settings: | ||
|
||
```java | ||
OkHttpClient okHttpClient = new OkHttpClient.Builder() | ||
.hostnameVerifier(myHostnameVerifier) | ||
.sslSocketFactory(mySSLContext.getSocketFactory(), myX509TrustManager) | ||
.build(); | ||
|
||
// default SSLContext for all sockets | ||
Socket.setDefaultOkHttpWebSocketFactory(okHttpClient); | ||
Socket.setDefaultOkHttpCallFactory(okHttpClient); | ||
|
||
// set as an option | ||
opts = new Socket.Options(); | ||
opts.callFactory = okHttpClient; | ||
opts.webSocketFactory = okHttpClient; | ||
socket = new Socket(opts); | ||
``` | ||
|
||
## Features | ||
|
||
This library supports all of the features the JS client does, including events, options and upgrading transport. Android is fully supported. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/DECORATION/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 http://maven.apache.org/xsd/decoration-1.8.0.xsd"> | ||
|
||
<skin> | ||
<groupId>org.apache.maven.skins</groupId> | ||
<artifactId>maven-fluido-skin</artifactId> | ||
<version>1.9</version> | ||
</skin> | ||
|
||
<custom> | ||
<fluidoSkin> | ||
<gitHub> | ||
<projectId>socketio/engine.io-client-java</projectId> | ||
<ribbonOrientation>right</ribbonOrientation> | ||
<ribbonColor>gray</ribbonColor> | ||
</gitHub> | ||
</fluidoSkin> | ||
</custom> | ||
|
||
<body> | ||
<menu name="Overview"> | ||
<item name="Installation" href="./installation.html"/> | ||
<item name="Usage" href="./usage.html"/> | ||
<item name="Javadoc" href="./apidocs/index.html"/> | ||
</menu> | ||
|
||
<menu ref="reports"/> | ||
</body> | ||
</project> |