#summary Network Listeners
@@[Home] -> [Specs] -> [ActiveSockets]
----
== Overview ==
This feature allows to have unlimited set of connections initiated from aiengine server to external servers.
== Implementation Details ==
* aiengine creates all active sockets on startup
* active socket is available via AIMedia interface
* active socket is available via IO channels if configured
* inbound stream can be forwarded to configured IO channel
* stream from specific IO channel can be forwarded to outbound
* active socket supports protocol configuring - see [MediaProtocols Protocols]
* if forwarding inbound stream - creates thread to read from socket and automatically reconnects if connection was broken
Planned but implemented:
* to have non-persisting connections - to use active connection only after request from server, do not restore connection automatically
* timeout for reconnection
== Configuration ==
* sample configuration for google active socket in media.xml
{{{
}}}
* *host* - host to connect to - now IP-addresses are not supported
* *port* - port to connect to
* *redirect-in* - if "true" then messages are forwarded from socket to IO channel
* *redirect-out* - if "true" then messages are forwarded from IO channel to socket
* *topic-in* - channel to write messages received from socket
* *topic-out* - messages from this channel are sent to socket - see [MediaProtocols Protocols]
* *reconnectionTimeout* - if unable to connect to socket, then next attempt is performed only after reconnectionTimeout seconds
== How to Test ==
* use google active socket and test to read some page:
{{{
INFO: AI console
INFO: connected to 87.228.126.111:20001
REQUEST:
output:
RESPONSE:
http://code.google.com
<!DOCTYPE html... (omitted)
INFO: disconnected
}}}