socketactor-jumi


License

License

Categories

Categories

Net
GroupId

GroupId

net.avh4.util.socket
ArtifactId

ArtifactId

socketactor-jumi
Last Version

Last Version

0.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

socketactor-jumi

Download socketactor-jumi

How to add to project

<!-- https://jarcasting.com/artifacts/net.avh4.util.socket/socketactor-jumi/ -->
<dependency>
    <groupId>net.avh4.util.socket</groupId>
    <artifactId>socketactor-jumi</artifactId>
    <version>0.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/net.avh4.util.socket/socketactor-jumi/
implementation 'net.avh4.util.socket:socketactor-jumi:0.0.1'
// https://jarcasting.com/artifacts/net.avh4.util.socket/socketactor-jumi/
implementation ("net.avh4.util.socket:socketactor-jumi:0.0.1")
'net.avh4.util.socket:socketactor-jumi:jar:0.0.1'
<dependency org="net.avh4.util.socket" name="socketactor-jumi" rev="0.0.1">
  <artifact name="socketactor-jumi" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.avh4.util.socket', module='socketactor-jumi', version='0.0.1')
)
libraryDependencies += "net.avh4.util.socket" % "socketactor-jumi" % "0.0.1"
[net.avh4.util.socket/socketactor-jumi "0.0.1"]

Dependencies

compile (1)

Group / Artifact Type Version
fi.jumi : jumi-actors jar 0.1.196

test (5)

Group / Artifact Type Version
junit : junit jar 4.11
org.mockito : mockito-core jar 1.9.5
org.hamcrest : hamcrest-core jar 1.3
org.hamcrest : hamcrest-library jar 1.3
org.easytesting : fest-assert jar 1.4

Project Modules

There are no modules declared in this project.

Build Status

socketactor-jumi

Provides SocketChannelActor, making it easy to create TCP clients/servers using the jumi-actors framework.

Usage

Add the following dependencies to your pom.xml:

  <dependency>
    <groupId>net.avh4.util.socket</groupId>
    <artifactId>socketactor-jumi</artifactId>
    <version>0.0.1</version>
  </dependency>

To create a TCP client, you will first need to initialize jumi-actors:

    ExecutorService threadPool = Executors.newCachedThreadPool();
    Actors actors = new MultiThreadedActors(threadPool,
            new DynamicEventizerProvider(),
            new CrashEarlyFailureHandler(),
            new PrintStreamMessageLogger(System.out));
    ActorThread actorThread = actors.startActorThread();

Now you can create your received and disconnected callbacks: (If your TCP protocol is not line-based, use BytesListener instead of LinesListener.)

    ActorRef<Socket> socket;
    ActorRef<LineListener> listener = actorThread.bindActor(LineListener.class,
      new LineListener() {
        @Override public void receivedLine(String line) {
          System.out.println("RECEIVED: " + line);
          socket.tell().next();
        }

        @Override public void disconnected(Throwable cause) {
          System.out.println("DISCONNECTED: " + cause.getLocalizedMessage());
        }
      });

Now connect your client to a server: (If your TCP protocol is not line-based, use SocketChannelActor.bytesSocketChannelActor instead of linesSocketChannelActor.)

    socket = actorThread.bindActor(Socket.class,
      SocketChannelActor.linesSocketChannelActor(host, port, listener));

    socket.tell().connect(listener);
    socket.tell().write(listener, "currentsong\n".getBytes());

Build commands

Versions

Version
0.0.1