public interface Connection
Modifier and Type | Interface and Description |
---|---|
static class |
Connection.ClientAuth
Enumeration that specifies if clients should be authenticated (and how) while
negotiating TLS.
|
static class |
Connection.CompressionPolicy
Enumeration of possible compression policies required to interact with the server.
|
static class |
Connection.TLSPolicy
Enumeration of possible TLS policies required to interact with the server.
|
Modifier and Type | Method and Description |
---|---|
void |
addCompression()
Adds the compression filter to the connection but only filter incoming traffic.
|
void |
close()
Close this session including associated socket connection.
|
void |
close(boolean peerIsKnownToBeDisconnected)
Close this session including associated socket connection.
|
void |
deliver(org.xmpp.packet.Packet packet)
Delivers the packet to this connection without checking the recipient.
|
void |
deliverRawText(String text)
Delivers raw text to this connection.
|
byte[] |
getAddress()
Returns the raw IP address of this
InetAddress
object. |
Connection.CompressionPolicy |
getCompressionPolicy()
Returns whether compression is optional or is disabled.
|
String |
getHostAddress()
Returns the IP address string in textual presentation.
|
String |
getHostName()
Gets the host name for this IP address.
|
String |
getLanguage()
Returns the language code that should be used for this connection
(e.g.
|
Certificate[] |
getLocalCertificates()
Returns the local underlying
X509Certificate
chain for the connection. |
int |
getMajorXMPPVersion()
Returns the major version of XMPP being used by this connection
(major_version.minor_version.
|
int |
getMinorXMPPVersion()
Returns the minor version of XMPP being used by this connection
(major_version.minor_version.
|
PacketDeliverer |
getPacketDeliverer()
Returns the packet deliverer to use when delivering a packet over the socket fails.
|
Certificate[] |
getPeerCertificates()
Returns the underlying
X509Certificate for
the connection of the peer. |
Connection.TLSPolicy |
getTlsPolicy()
Returns whether TLS is mandatory, optional or is disabled.
|
void |
init(LocalSession session)
Initializes the connection with it's owning session.
|
boolean |
isClosed()
Returns true if the connection/session is closed.
|
boolean |
isCompressed()
Returns true if the connection is using compression.
|
boolean |
isFlashClient()
Returns true if the connected client is a flash client.
|
boolean |
isSecure()
Returns true if this connection is secure.
|
boolean |
isUsingSelfSignedCertificate()
Returns true if the other peer of this session presented a self-signed certificate.
|
void |
registerCloseListener(ConnectionCloseListener listener,
Object handbackMessage)
Registers a listener for close event notification.
|
void |
removeCloseListener(ConnectionCloseListener listener)
Removes a registered close event listener.
|
void |
setCompressionPolicy(Connection.CompressionPolicy compressionPolicy)
Sets whether compression is enabled or is disabled.
|
void |
setFlashClient(boolean flashClient)
Sets whether the connected client is a flash client.
|
void |
setLanaguage(String language)
Sets the language code that should be used for this connection (e.g.
|
void |
setTlsPolicy(Connection.TLSPolicy tlsPolicy)
Sets whether TLS is mandatory, optional or is disabled.
|
void |
setUsingSelfSignedCertificate(boolean isSelfSigned)
Keeps track if the other peer of this session presented a self-signed certificate.
|
void |
setXMPPVersion(int majorVersion,
int minorVersion)
Sets the XMPP version information.
|
void |
startCompression()
Start compressing outgoing traffic for this connection.
|
void |
startTLS(boolean clientMode,
String remoteServer,
Connection.ClientAuth authentication)
Secures the plain connection by negotiating TLS with the other peer.
|
void |
systemShutdown()
Notification message indicating that the server is being shutdown.
|
boolean |
validate()
Verifies that the connection is still live.
|
boolean validate()
void init(LocalSession session)
session
- the session that owns this connectionbyte[] getAddress() throws UnknownHostException
InetAddress
object. The result is in network byte order: the highest order
byte of the address is in getAddress()[0]
.UnknownHostException
- if IP address of host could not be determined.String getHostAddress() throws UnknownHostException
UnknownHostException
- if IP address of host could not be determined.String getHostName() throws UnknownHostException
If this InetAddress was created with a host name,
this host name will be remembered and returned;
otherwise, a reverse name lookup will be performed
and the result will be returned based on the system
configured name lookup service. If a lookup of the name service
is required, call
getCanonicalHostName
.
If there is a security manager, its
checkConnect
method is first called
with the hostname and -1
as its arguments to see if the operation is allowed.
If the operation is not allowed, it will return
the textual representation of the IP address.
UnknownHostException
- if IP address of host could not be determined.InetAddress.getCanonicalHostName()
,
SecurityManager.checkConnect(java.lang.String, int)
Certificate[] getLocalCertificates()
X509Certificate
chain for the connection.Certificate[] getPeerCertificates()
X509Certificate
for
the connection of the peer.void setUsingSelfSignedCertificate(boolean isSelfSigned)
isSelfSigned
- true if the other peer presented a self-signed certificate.boolean isUsingSelfSignedCertificate()
void close()
close(boolean)
with a parameter
that is false.void close(boolean peerIsKnownToBeDisconnected)
peerIsKnownToBeDisconnected
- should be set to true when the peer is known to no longer be available.void systemShutdown()
boolean isClosed()
boolean isSecure()
void registerCloseListener(ConnectionCloseListener listener, Object handbackMessage)
listener
- the listener to register for events.handbackMessage
- the object to send in the event notification.void removeCloseListener(ConnectionCloseListener listener)
listener
- the listener to deregister for close events.void deliver(org.xmpp.packet.Packet packet) throws UnauthorizedException
socket.send(packet.getWriteBuffer())
.packet
- the packet to deliver.UnauthorizedException
- if a permission error was detected.void deliverRawText(String text)
deliver(org.xmpp.packet.Packet)
.This method avoids having to get the writer of this connection and mess directly with the writer. Therefore, this method ensures a correct delivery of the stanza even if other threads were sending data concurrently.
text
- the XML stanzas represented kept in a String.boolean isFlashClient()
void setFlashClient(boolean flashClient)
flashClient
- true if the if the connection is a flash client.int getMajorXMPPVersion()
int getMinorXMPPVersion()
void setXMPPVersion(int majorVersion, int minorVersion)
majorVersion
- the major version.minorVersion
- the minor version.String getLanguage()
void setLanaguage(String language)
language
- the language code.boolean isCompressed()
Connection.CompressionPolicy getCompressionPolicy()
void setCompressionPolicy(Connection.CompressionPolicy compressionPolicy)
compressionPolicy
- whether Compression is enabled or is disabled.Connection.TLSPolicy getTlsPolicy()
void setTlsPolicy(Connection.TLSPolicy tlsPolicy)
tlsPolicy
- whether TLS is mandatory, optional or is disabled.PacketDeliverer getPacketDeliverer()
void startTLS(boolean clientMode, String remoteServer, Connection.ClientAuth authentication) throws Exception
true
in the clientMode parameter and the server
receiving the TLS request must pass false
in the clientMode parameter.
Both servers should specify the xmpp domain of the other server in the remoteServer
parameter.
In the case of client-2-server the XMPP server must pass false
in the
clientMode parameter since it will behave as the server in the TLS negotiation. The
remoteServer parameter will always be null.
clientMode
- boolean indicating if this entity is a client or a server in the TLS negotiation.remoteServer
- xmpp domain of the remote server or null. When null a
ClientTrustManager
will be used for verifying certificates
otherwise a ServerTrustManager
will be used.authentication
- policy to use for authenticating the remote peer.Exception
- if an error occured while securing the connection.void addCompression()
void startCompression()
Copyright © 2003-2008 Jive Software.