socketactor-parent


License

License

Categories

Categories

Net
GroupId

GroupId

net.avh4.util.socket
ArtifactId

ArtifactId

socketactor-parent
Last Version

Last Version

0.0.1
Release Date

Release Date

Type

Type

pom
Description

Description

socketactor-parent
Project URL

Project URL

https://github.com/avh4/socketactor
Source Code Management

Source Code Management

https://github.com/avh4/socketactor

Download socketactor-parent

How to add to project

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

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

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