object TcpListener
Provides support for to write Akka TCP servers
Generally you use:
// somewhere at the header include: import ronda.tcp._ // inside some part of actor, create the listener val listener = TcpListener.create // ..and then bind it (for example, to 4096/tcp port) listener ! BindPort (4096)
Then, inside your def receive handler you will receive a notification about ronda.tcp.Api.BoundPort or ronda.tcp.Api.BindPort error.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- TcpListener
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
create(implicit system: ActorSystem): ActorRef
Creates a new TcpListener actor, returning the reerence.
Creates a new TcpListener actor, returning the reerence. The listener actor is not bound to any port. You have to send a ronda.tcp.Api.BindPort message with the needed port to start accepting connections.
// import classes and definitions import ronda.tcp.Api._ import ronda.tcp._ // create listener reference passing implict reference to context.system : ActorSystem, // if you do not have it defined. You can also do import context.system val listener = TcpListener.create (context.system) // Now, request to bind port listener ! BindPort (56000)
- returns
An ActorRef pointing to an unconnected listener. You have to send a ronda.tcp.Api.BindPort message to starting listing for incoming connections.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
Akka Actors to build Reactive TCP servers using Akka Actors
Homepage: http://www.aspl.es/ronda
Mailing list: http://lists.aspl.es/cgi-bin/mailman/listinfo/rondabridge
Overview
RondaBridge is a set of Akka Actors, written in Scala, that provides support to create TcpListeners and TcpConnections.
Even though creating TcpClient software is supported, RondaBridge is more targeted to server side development for safe, scalable, concurrent and reactive TCP servers on top of Akka Actors system.
RondaBridge aims to provide full support to create TcpListeners, including support for TLS, TLS SNI, multi-tenant configuration, and WebSocket.
RondaBridge is OpenSource, released under the LGPL 2.1 is checked with an intense regression test that is expanded as much as we can. It is written using ScalaTest.
We are using RondaBridge to provide Tcp support for MyQtt (https://www.aspl.es/myqtt).
How to include RondaBridge
Include the following into your build.sbt:
Or, download it from github and do a local install:
>> git clone git://github.com/ASPLes/RondaBridge.gite >> cd RondaBridge >> sbt > compile > publishLocal
...and then include/import RondaBridge from your proyect as indicated above.
How to create a TcpListener
How to get notifications for new incoming connections
The actor that created the TcpListener, which is the master actor by that step, will get ronda.tcp.Api.NewConnection notification:
As you can see, a ronda.tcp.Api.NewConnection message along with new connection is received everytime a new incoming connection is received.
Next steps
Once created a TcpListener or a TcpConnection, use Api messages available to interact with these actors, to configure them and to make them do the useful work.