项目作者: gorgexec

项目描述 :
RxJava socket.io library wrapper
高级语言: Java
项目地址: git://github.com/gorgexec/RxSocketIO.git
创建时间: 2019-08-31T22:59:15Z
项目社区:https://github.com/gorgexec/RxSocketIO

开源协议:

下载


RxSocketIO

Simple RxJava2 socket.io library wrapper over socket.io-client-java library.

Install

Gradle

  1. repositories {
  2. jcenter()
  3. }
  4. dependencies {
  5. implementation 'com.gorgexec.rxsocketio:rxsocketio:1.0.0'
  6. }

Usage

  1. //collection of server events to handle
  2. Collection<String> events = new ArraySet<>();
  3. events.add("login");
  4. events.add("new message");
  5. events.add("logout");
  6. //socket initialization
  7. RxSocketIo socket = RxSocketIo.create("http://localhost", events);
  8. //subscribing socket state
  9. disposable.add(socket.observeState()
  10. .subscribe(this::onState));
  11. //subscribing socket incoming messages from server
  12. disposable.add(socket.observeMessages()
  13. .subscribe(this::onIncomingMessage));
  14. socket.connect();

You can set a socket with additional options. It is the original Socket.IO-client liblary object:

  1. IO.Options options = new IO.Options();
  2. options.timeout = 50000;
  3. RxSocketIo socket = RxSocketIo.create("http://localhost", events, options);

Full options description is available here

Sending message:

  1. socket.emit("new message", message);

Handling incoming messages:

  1. private void onIncomingMessage(SocketEvent socketEvent){
  2. String eventName = socketEvent.name();
  3. switch (eventName){
  4. case "new message":
  5. for(Object obj: socketEvent.data()) {
  6. //do something
  7. }
  8. break;
  9. case "logout":
  10. socket.disconnect();
  11. break;
  12. }
  13. }

Sample App

TBD