#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 }}}