|
IP*Works! SSL V9 | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectipworksssl.Xmpps
public class Xmpps
The XMPPS Bean is used to create a lightweight messaging client using the XMPP (Jabber) protocol.
A call to the Connect method will perform the entire logon process after
which a Connected event will fire indicating connection status. For
simplicity, the entire interface is synchronous; the bean will not return
until a call is completed.
After a successful connection, the bean will automatically begin
the process of receiving the user's buddy list. The bean will parse
the XML as it comes in from the server and will set the appropriate
properties. Once the entire buddy list has been retrieved, a Sync event
will fire.
Sending a message is as simple as calling a single method. One
call to the SendMessage method will cause the bean to connect if
it has not already done so, send the specified message to a specified user,
and return to the original connection state.
The XMPPS Bean interface supports messaging, list and presence
management. Other features of the XMPP protocol are supported through the SendCommand method and PITrail event.
Example (Connecting and Sending a Message)
IMControl.Connect("myusername", "mypassword")
IMControl.MessageText = "My Message"
IMControl.SendMessage("ToUser") Example (Sending a Single Message)
IMControl.User = "myusername"
IMControl.Password = "mypassword"
IMControl.MessageText = "My Message"
IMControl.SendMessage("ToUser")
| Field Summary | |
|---|---|
static int |
mtChat
|
static int |
mtError
|
static int |
mtGroupChat
|
static int |
mtHeadline
|
static int |
mtNormal
|
static int |
pcAway
|
static int |
pcChat
|
static int |
pcDND
|
static int |
pcOffline
|
static int |
pcXA
|
static int |
sslAutomatic
|
static int |
sslExplicit
|
static int |
sslImplicit
|
static int |
sslNone
|
| Constructor Summary | |
|---|---|
Xmpps()
Creates an instance of Xmpps Bean. |
|
Xmpps(java.lang.String runtimeLicense)
Creates an instance of Xmpps Bean with specified run-time license. |
|
| Method Summary | |
|---|---|
void |
add(java.lang.String jabberId,
java.lang.String name,
java.lang.String groups)
This method will add an entity to this entity's roster. |
void |
addXmppsEventListener(XmppsEventListener l)
|
void |
cancel(java.lang.String jabberId)
This will cancel another entity's subscription to this entity's presence. |
void |
changePassword(java.lang.String password)
This method will change the current user's password. |
void |
changePresence(int presenceCode,
java.lang.String status)
This method will set the availability and status of this entity. |
java.lang.String |
config(java.lang.String configurationString)
Sets or retrieves a {@link ipworksssl.Xmpps#config configuration setting. |
void |
connect(java.lang.String user,
java.lang.String password)
This method will connect the bean to the server. |
void |
disconnect()
This method disconnects the bean from the server. |
void |
doEvents()
This method processes events from the internal message queue. |
java.lang.String |
getAuthDomain()
The domain under which the user will be authenticated. |
java.lang.String |
getAuthMethods()
Controls how the bean authenticates itself with the XMPP server. |
XMPPBuddyList |
getBuddies()
Collection of buddies in the buddy list. |
Firewall |
getFirewall()
A set of properties related to firewall access. |
int |
getIMPort()
The server port for XMPP (default 5222). |
java.lang.String |
getIMServer()
This is the instant messaging server. |
java.lang.String |
getLocalDirectory()
The directory to which received files are saved. |
java.lang.String |
getLocalFile()
The path to the file that will be sent. |
java.lang.String |
getLocalHost()
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
java.lang.String |
getMessageHTML()
This is the HTML version of the current message. |
java.lang.String |
getMessageOtherData()
This property contains extra data elements for the current message. |
java.lang.String |
getMessageSubject()
This is the subject of the current message. |
java.lang.String |
getMessageText()
This is the plain text of the current message. |
java.lang.String |
getMessageThread()
This is the thread name of the current message. |
int |
getMessageType()
This is the type of the current message. |
java.lang.String |
getPassword()
This is the user's password. |
int |
getPresence()
This is the availability of the entity. |
java.lang.String |
getResource()
This is the resource for the current session. |
java.lang.String |
getServerDomain()
The XMPP server's domain. |
Certificate |
getSSLAcceptServerCert()
Instructs the bean to unconditionally accept the server certificate that matches the supplied certificate. |
Certificate |
getSSLCert()
The certificate to be used during SSL negotiation. |
Certificate |
getSSLServerCert()
The server certificate for the last established connection. |
int |
getSSLStartMode()
Determines how the bean starts the SSL negotiation. |
java.lang.String |
getStatus()
Description of the availability of this entity. |
int |
getTimeout()
A timeout for the bean. |
java.lang.String |
getUser()
The user portion of this entity's Jabber ID. |
java.lang.String |
getUserDomain()
Gets or sets the domain value used for Jabber IDs |
XMPPUserInfoMap |
getUserInfo()
Collection of named registration fields. |
void |
interrupt()
Interrupt the current method. |
boolean |
isConnected()
This indicates the bean's login status. |
void |
probePresence(java.lang.String jabberId)
Use this method to probe for another entity's presence. |
void |
queryRegister(java.lang.String XMPPServer)
This method queries a server for the necessary registration fields. |
void |
register(java.lang.String XMPPServer)
This method registers an account with a server. |
void |
remove(java.lang.String jabberId,
java.lang.String name,
java.lang.String group)
This method will remove an entity from this entity's roster. |
void |
removeXmppsEventListener(XmppsEventListener l)
|
void |
retrieveRoster()
This method will retrieve this entity's roster from the server. |
void |
sendCommand(java.lang.String command)
This method sends a command to the server. |
void |
sendFile(java.lang.String jabberId)
Sends a file to the specified user. |
java.lang.String |
sendMessage(java.lang.String jabberId)
This method will send a message to the specified user. |
void |
setAuthDomain(java.lang.String authDomain)
The domain under which the user will be authenticated. |
void |
setAuthMethods(java.lang.String authMethods)
Controls how the bean authenticates itself with the XMPP server. |
void |
setConnected(boolean connected)
This indicates the bean's login status. |
void |
setFirewall(Firewall firewall)
A set of properties related to firewall access. |
void |
setIMPort(int IMPort)
The server port for XMPP (default 5222). |
void |
setIMServer(java.lang.String IMServer)
This is the instant messaging server. |
void |
setLocalDirectory(java.lang.String localDirectory)
The directory to which received files are saved. |
void |
setLocalFile(java.lang.String localFile)
The path to the file that will be sent. |
void |
setLocalHost(java.lang.String localHost)
The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
void |
setMessageHTML(java.lang.String messageHTML)
This is the HTML version of the current message. |
void |
setMessageOtherData(java.lang.String messageOtherData)
This property contains extra data elements for the current message. |
void |
setMessageSubject(java.lang.String messageSubject)
This is the subject of the current message. |
void |
setMessageText(java.lang.String messageText)
This is the plain text of the current message. |
void |
setMessageThread(java.lang.String messageThread)
This is the thread name of the current message. |
void |
setMessageType(int messageType)
This is the type of the current message. |
void |
setPassword(java.lang.String password)
This is the user's password. |
void |
setPresence(int presence)
This is the availability of the entity. |
void |
setReceiveStream(java.io.OutputStream receiveStream)
Sets the stream to which the received file data from will be written. |
void |
setResource(java.lang.String resource)
This is the resource for the current session. |
void |
setSendStream(java.io.InputStream sendStream,
java.lang.String filename)
Sets the stream to be sent. |
void |
setServerDomain(java.lang.String serverDomain)
The XMPP server's domain. |
void |
setSSLAcceptServerCert(Certificate SSLAcceptServerCert)
Instructs the bean to unconditionally accept the server certificate that matches the supplied certificate. |
void |
setSSLCert(Certificate SSLCert)
The certificate to be used during SSL negotiation. |
void |
setSSLStartMode(int SSLStartMode)
Determines how the bean starts the SSL negotiation. |
void |
setStatus(java.lang.String status)
Description of the availability of this entity. |
void |
setTimeout(int timeout)
A timeout for the bean. |
void |
setUser(java.lang.String user)
The user portion of this entity's Jabber ID. |
void |
setUserDomain(java.lang.String userDomain)
Gets or sets the domain value used for Jabber IDs |
void |
setUserInfoField(java.lang.String field,
java.lang.String value)
This method will add a user information field for registration. |
void |
subscribeTo(java.lang.String jabberId)
Use this method to subscribe to another entity's presence. |
void |
unregister()
This method cancels an account with the host. |
void |
unsubscribeTo(java.lang.String jabberId)
This method will cancel a subscription to another entity's presence. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int mtNormal
public static final int mtChat
public static final int mtGroupChat
public static final int mtHeadline
public static final int mtError
public static final int pcOffline
public static final int pcChat
public static final int pcAway
public static final int pcXA
public static final int pcDND
public static final int sslAutomatic
public static final int sslImplicit
public static final int sslExplicit
public static final int sslNone
| Constructor Detail |
|---|
public Xmpps()
public Xmpps(java.lang.String runtimeLicense)
| Method Detail |
|---|
public java.lang.String getAuthDomain()
Set this value if the user must authenticate via a third party authentication service that requires a different domain than the XMPP user's registered domain.
public void setAuthDomain(java.lang.String authDomain)
throws IPWorksSSLException
Set this value if the user must authenticate via a third party authentication service that requires a different domain than the XMPP user's registered domain.
IPWorksSSLExceptionpublic java.lang.String getAuthMethods()
AuthMethods is a comma-separated list of authentication methods to be enabled on the bean, listed in order of preference. When authenticating, the bean will pick the first method in the list that is supported by the server.
The special value * (default) may be supplied to cause the bean to enable all supported authentication methods in order of presumed security. The XMPP bean currently supports the following values for AuthMethods , listed in order of most secure to least secure:
public void setAuthMethods(java.lang.String authMethods)
throws IPWorksSSLException
AuthMethods is a comma-separated list of authentication methods to be enabled on the bean, listed in order of preference. When authenticating, the bean will pick the first method in the list that is supported by the server.
The special value * (default) may be supplied to cause the bean to enable all supported authentication methods in order of presumed security. The XMPP bean currently supports the following values for AuthMethods , listed in order of most secure to least secure:
IPWorksSSLExceptionpublic XMPPBuddyList getBuddies()
After a Sync event is fired, this property
will contain a collection of all buddies in the
buddy list. The buddy list will be updated by the
server when a successful call to RetrieveRoster has been made.
This collection is indexed from 0 to size - 1.
public boolean isConnected()
This value shows whether or not the bean has successfully
logged into the IMServer . It will not be true until a
successful Connected event has fired.
public void setConnected(boolean connected)
throws IPWorksSSLException
This value shows whether or not the bean has successfully
logged into the IMServer . It will not be true until a
successful Connected event has fired.
IPWorksSSLExceptionpublic Firewall getFirewall()
This is a Firewall type property which
contains fields describing the firewall
through which the bean will attempt to connect.
public void setFirewall(Firewall firewall)
throws IPWorksSSLException
This is a Firewall type property which
contains fields describing the firewall
through which the bean will attempt to connect.
IPWorksSSLExceptionpublic int getIMPort()
A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed once a connection is established. Any attempt to change this property while connected will fail with an error.
public void setIMPort(int IMPort)
throws IPWorksSSLException
A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed once a connection is established. Any attempt to change this property while connected will fail with an error.
IPWorksSSLExceptionpublic java.lang.String getIMServer()
This is the instant messaging server to which the bean will connect
when the Connect method is called. The IMServer property must
contain a valid XMPP (Jabber) server, or any subsequent calls to the Connect method will fail.
public void setIMServer(java.lang.String IMServer)
throws IPWorksSSLException
This is the instant messaging server to which the bean will connect
when the Connect method is called. The IMServer property must
contain a valid XMPP (Jabber) server, or any subsequent calls to the Connect method will fail.
IPWorksSSLExceptionpublic java.lang.String getLocalDirectory()
This setting specifies the directory on disk to which received files will be saved. If this
property is not set and a file is received the file data will be available through the Transfer event
parameters. This property may also be set when the StartTransfer event fires.
public void setLocalDirectory(java.lang.String localDirectory)
throws IPWorksSSLException
This setting specifies the directory on disk to which received files will be saved. If this
property is not set and a file is received the file data will be available through the Transfer event
parameters. This property may also be set when the StartTransfer event fires.
IPWorksSSLExceptionpublic java.lang.String getLocalFile()
This property specifies the local file that will be sent when calling SendFile . This property
must be set before calling SendFile .
public void setLocalFile(java.lang.String localFile)
throws IPWorksSSLException
This property specifies the local file that will be sent when calling SendFile . This property
must be set before calling SendFile .
IPWorksSSLExceptionpublic java.lang.String getLocalHost()
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean is connected, the LocalHost property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multi-homed
hosts (machines with more than one IP interface).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
public void setLocalHost(java.lang.String localHost)
throws IPWorksSSLException
The LocalHost property contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the bean initiate connections (or accept in the case of server beans) only through that interface.
If the bean is connected, the LocalHost property shows
the IP address of the interface through which the connection
is made in internet dotted format (aaa.bbb.ccc.ddd). In most
cases, this is the address of the local host, except for multi-homed
hosts (machines with more than one IP interface).
NOTE: LocalHost is not persistent. You must always set it in
code, and never in the property window.
IPWorksSSLExceptionpublic java.lang.String getMessageHTML()
If the user wishes to send any HTML as a part of the message,
it must be set in the MessageHTML property. The HTML must
be an entire HTML document, including the <html> and
<body> tags. If the HTML has unbalanced tags, the XMPP
bean will fail with an error.
public void setMessageHTML(java.lang.String messageHTML)
throws IPWorksSSLException
If the user wishes to send any HTML as a part of the message,
it must be set in the MessageHTML property. The HTML must
be an entire HTML document, including the <html> and
<body> tags. If the HTML has unbalanced tags, the XMPP
bean will fail with an error.
IPWorksSSLExceptionpublic java.lang.String getMessageOtherData()
MessageOtherData will contain zero or more complete XML elements associated
with the message, but which are not defined in the Jabber specification.
public void setMessageOtherData(java.lang.String messageOtherData)
throws IPWorksSSLException
MessageOtherData will contain zero or more complete XML elements associated
with the message, but which are not defined in the Jabber specification.
IPWorksSSLExceptionpublic java.lang.String getMessageSubject()
MessageSubject will contain any subject associated with the
message. Most Jabber clients will ignore the subject unless the
message is of type "headline".
public void setMessageSubject(java.lang.String messageSubject)
throws IPWorksSSLException
MessageSubject will contain any subject associated with the
message. Most Jabber clients will ignore the subject unless the
message is of type "headline".
IPWorksSSLExceptionpublic java.lang.String getMessageText()
MessageText is the plain text version of the current message,
taken from the message's "body" child element. The text in this
property is automatically escaped to ensure valid XML parsing on
the other end.
public void setMessageText(java.lang.String messageText)
throws IPWorksSSLException
MessageText is the plain text version of the current message,
taken from the message's "body" child element. The text in this
property is automatically escaped to ensure valid XML parsing on
the other end.
IPWorksSSLExceptionpublic java.lang.String getMessageThread()
MessageThread will contain the name of the thread associated
with the message. Threads are useful for tracking messages of
type "chat" or "groupchat".
public void setMessageThread(java.lang.String messageThread)
throws IPWorksSSLException
MessageThread will contain the name of the thread associated
with the message. Threads are useful for tracking messages of
type "chat" or "groupchat".
IPWorksSSLExceptionpublic int getMessageType()
MessageType is the type of the message as specified in the
XMPP RFC. The possible values are defined in the protocol
specification as follows:
public void setMessageType(int messageType)
throws IPWorksSSLException
MessageType is the type of the message as specified in the
XMPP RFC. The possible values are defined in the protocol
specification as follows:
IPWorksSSLExceptionpublic java.lang.String getPassword()
This must be set before a connection is attempted. If a call to
the Connect method is made specifying a password, the Password property will contain that password.
public void setPassword(java.lang.String password)
throws IPWorksSSLException
This must be set before a connection is attempted. If a call to
the Connect method is made specifying a password, the Password property will contain that password.
IPWorksSSLExceptionpublic int getPresence()
When the bean completes the initial log in, it will send information telling other entities subscribed to this entity's presence that it is online. The application must provide different status and availability information as the user changes them.
The Presence property has one of four values representing
general information about the user's status as defined in the
Jabber protocol specification:
By default, the bean sets the client presence to pcChat , meaning that the user is available. To change the initial status sent by the bean set Presence to the desired presence before calling Connect .
Note: offline is not officially supported by the XMPP specification, however some XMPP server implementations may recognize the value. Setting the client's presence state to this value may cause the server to respond with an Error .
The Status property is a pure-text string representing the
user's presence information. Its value maybe be any random
string, including the empty string, "".
Whenever the value in Presence or Status are changed,
the bean will send that information to the server. If the
application or user wishes to associate a specific status message
with a new presence value, it should use the ChangePresence method. ChangePresence will update both the Presence and Status properties, and then send that information to the
server.
public void setPresence(int presence)
throws IPWorksSSLException
When the bean completes the initial log in, it will send information telling other entities subscribed to this entity's presence that it is online. The application must provide different status and availability information as the user changes them.
The Presence property has one of four values representing
general information about the user's status as defined in the
Jabber protocol specification:
By default, the bean sets the client presence to pcChat , meaning that the user is available. To change the initial status sent by the bean set Presence to the desired presence before calling Connect .
Note: offline is not officially supported by the XMPP specification, however some XMPP server implementations may recognize the value. Setting the client's presence state to this value may cause the server to respond with an Error .
The Status property is a pure-text string representing the
user's presence information. Its value maybe be any random
string, including the empty string, "".
Whenever the value in Presence or Status are changed,
the bean will send that information to the server. If the
application or user wishes to associate a specific status message
with a new presence value, it should use the ChangePresence method. ChangePresence will update both the Presence and Status properties, and then send that information to the
server.
IPWorksSSLExceptionpublic java.lang.String getResource()
Whenever an entity logs in to an XMPP (Jabber) server, it must provide account information as well as a resource. Resources allow multiple clients to log in using the same account. The server will forward all messages and PI data aimed at a specific resource to that resource. If a command or message is to be sent to a Jabber ID with no specified resource, the server will push that command or message out to all connected resources.
public void setResource(java.lang.String resource)
throws IPWorksSSLException
Whenever an entity logs in to an XMPP (Jabber) server, it must provide account information as well as a resource. Resources allow multiple clients to log in using the same account. The server will forward all messages and PI data aimed at a specific resource to that resource. If a command or message is to be sent to a Jabber ID with no specified resource, the server will push that command or message out to all connected resources.
IPWorksSSLExceptionpublic java.lang.String getServerDomain()
The domain of the XMPP server itself. Set this value
if the domain of the server is different from the
DNS name of the IMServer .
public void setServerDomain(java.lang.String serverDomain)
throws IPWorksSSLException
The domain of the XMPP server itself. Set this value
if the domain of the server is different from the
DNS name of the IMServer .
IPWorksSSLExceptionpublic Certificate getSSLAcceptServerCert()
If it finds any issues with the certificate presented by the server, the bean will normally terminate the connection with an error.
You may override this behavior by supplying a value for SSLAcceptServerCert .
If the certificate supplied in SSLAcceptServerCert is the same as the
certificate presented by the server, then the server
certificate is accepted unconditionally, and the connection will continue
normally.
Please note that this functionality is provided only for cases where you otherwise know that you are communicating with the right server. If used improperly, this property may create a security breach. Use it at your own risk.
public void setSSLAcceptServerCert(Certificate SSLAcceptServerCert)
throws IPWorksSSLException
If it finds any issues with the certificate presented by the server, the bean will normally terminate the connection with an error.
You may override this behavior by supplying a value for SSLAcceptServerCert .
If the certificate supplied in SSLAcceptServerCert is the same as the
certificate presented by the server, then the server
certificate is accepted unconditionally, and the connection will continue
normally.
Please note that this functionality is provided only for cases where you otherwise know that you are communicating with the right server. If used improperly, this property may create a security breach. Use it at your own risk.
IPWorksSSLExceptionpublic Certificate getSSLCert()
The digital certificate that the bean will use
during SSL negotiation. Set this property to a valid
certificate before starting SSL negotiation. To set
a certificate, you may set the Encoded field to
the encoded certificate. To select a certificate, use
the store and subject fields.
public void setSSLCert(Certificate SSLCert)
throws IPWorksSSLException
The digital certificate that the bean will use
during SSL negotiation. Set this property to a valid
certificate before starting SSL negotiation. To set
a certificate, you may set the Encoded field to
the encoded certificate. To select a certificate, use
the store and subject fields.
IPWorksSSLExceptionpublic Certificate getSSLServerCert()
SSLServerCert contains the server certificate for the
last established connection.
SSLServerCert is reset every time a new connection is attempted.
public int getSSLStartMode()
The SSLStartMode property may have one of the following values:
SSLStartMode is set to sslExplicit . In all other cases, SSL negotiation will be implicit
( sslImplicit ).
public void setSSLStartMode(int SSLStartMode)
throws IPWorksSSLException
The SSLStartMode property may have one of the following values:
SSLStartMode is set to sslExplicit . In all other cases, SSL negotiation will be implicit
( sslImplicit ).
IPWorksSSLExceptionpublic java.lang.String getStatus()
When the bean completes the initial log in, it will send information telling other entities subscribed to this entity's presence that it is online. The application must provide different status and availability information as the user changes them.
The Presence property has one of four values representing
general information about the user's status as defined in the
Jabber protocol specification:
By default, the bean sets the client presence to pcChat , meaning that the user is available. To change the initial status sent by the bean set Presence to the desired presence before calling Connect .
Note: offline is not officially supported by the XMPP specification, however some XMPP server implementations may recognize the value. Setting the client's presence state to this value may cause the server to respond with an Error .
The Status property is a pure-text string representing the
user's presence information. Its value maybe be any random
string, including the empty string, "".
Whenever the value in Presence or Status are changed,
the bean will send that information to the server. If the
application or user wishes to associate a specific status message
with a new presence value, it should use the ChangePresence method. ChangePresence will update both the Presence and Status properties, and then send that information to the
server.
public void setStatus(java.lang.String status)
throws IPWorksSSLException
When the bean completes the initial log in, it will send information telling other entities subscribed to this entity's presence that it is online. The application must provide different status and availability information as the user changes them.
The Presence property has one of four values representing
general information about the user's status as defined in the
Jabber protocol specification:
By default, the bean sets the client presence to pcChat , meaning that the user is available. To change the initial status sent by the bean set Presence to the desired presence before calling Connect .
Note: offline is not officially supported by the XMPP specification, however some XMPP server implementations may recognize the value. Setting the client's presence state to this value may cause the server to respond with an Error .
The Status property is a pure-text string representing the
user's presence information. Its value maybe be any random
string, including the empty string, "".
Whenever the value in Presence or Status are changed,
the bean will send that information to the server. If the
application or user wishes to associate a specific status message
with a new presence value, it should use the ChangePresence method. ChangePresence will update both the Presence and Status properties, and then send that information to the
server.
IPWorksSSLExceptionpublic int getTimeout()
If the Timeout property is set to 0, all operations
will run uninterrupted until successful completion or an error condition
is encountered.
If Timeout is set to a positive value, the bean will
wait for the operation to complete before returning control.
The bean will use DoEvents to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If Timeout expires, and the operation is not yet complete,
the bean throws an exception.
Please note that by default, all timeouts are inactivity timeouts ,
i.e. the timeout period is extended by Timeout seconds when
any amount of data is successfully sent or received.
Optionally, the behavior of the bean may be changed to absolute timeouts , i.e. the bean will wait for a maximum
of Timeout seconds since the beginning of the operation, without
extending the timeout period during communications.
This behavior is controlled by the ipworksssl.Xmpps#config configuration setting.
The default value for the {@link ipworksssl.Xmpps#getTimeout Timeout} property is 60 (seconds).
public void setTimeout(int timeout)
throws IPWorksSSLException
If the Timeout property is set to 0, all operations
will run uninterrupted until successful completion or an error condition
is encountered.
If Timeout is set to a positive value, the bean will
wait for the operation to complete before returning control.
The bean will use DoEvents to enter an efficient wait loop
during any potential waiting period, making sure that all system events
are processed immediately as they arrive. This ensures that the host
application does not "freeze" and remains responsive.
If Timeout expires, and the operation is not yet complete,
the bean throws an exception.
Please note that by default, all timeouts are inactivity timeouts ,
i.e. the timeout period is extended by Timeout seconds when
any amount of data is successfully sent or received.
Optionally, the behavior of the bean may be changed to absolute timeouts , i.e. the bean will wait for a maximum
of Timeout seconds since the beginning of the operation, without
extending the timeout period during communications.
This behavior is controlled by the ipworksssl.Xmpps#config configuration setting.
The default value for the {@link ipworksssl.Xmpps#getTimeout Timeout} property is 60 (seconds).
IPWorksSSLExceptionpublic java.lang.String getUser()
The User property is a unique username associated with
this entity and set at time of registration under the field
"user".
public void setUser(java.lang.String user)
throws IPWorksSSLException
The User property is a unique username associated with
this entity and set at time of registration under the field
"user".
IPWorksSSLExceptionpublic java.lang.String getUserDomain()
A Jabber ID (JID) is a unique identifier of the format " User @ Domain / Resource ". user@domain denotes the account by username and domain. The Resource is given
during the login process to distinguish individual connections under the same account. If
the IMServer contains multiple domains, this property setting allows the user to specify
the domain under which to login.
If Domain is empty, the value in IMServer is used by default when creating
the client's JID.
public void setUserDomain(java.lang.String userDomain)
throws IPWorksSSLException
A Jabber ID (JID) is a unique identifier of the format " User @ Domain / Resource ". user@domain denotes the account by username and domain. The Resource is given
during the login process to distinguish individual connections under the same account. If
the IMServer contains multiple domains, this property setting allows the user to specify
the domain under which to login.
If Domain is empty, the value in IMServer is used by default when creating
the client's JID.
IPWorksSSLExceptionpublic XMPPUserInfoMap getUserInfo()
Before a registration can be attempted, the application should use
the QueryRegister method to poll the host to which the user wishes
to register. This will gather all of the necessary fields that the user
must send to the server, and will populate the UserInfo collection
accordingly. After a successful query, all
entries in UserInfo values will be empty strings.
The possible registration fields are defined in the Jabber protocol specification as follows:
After the user has set all of the values in UserInfo , and
added any extra fields they may wish to include in their registration,
the application should make a call to Register .
If the bean is not already connected when this method is called, it will connect, poll the registration fields, and then disconnect.
This collection is a hashtable type of collection where the field string is used as the key to the desired XMPP user info object.
Example (Setting New User Information)
xmpp1.queryRegister("server");
xmpp1.getUserInfo().item("Username").setValue("newuser");
xmpp1.getUserInfo().item("Password").setValue("newpass");
xmpp1.register("server");
public void add(java.lang.String jabberId,
java.lang.String name,
java.lang.String groups)
throws IPWorksSSLException
JabberId is the Jabber ID of the entity to be added. It should
be of form "user@host". If no hostname is specified, the
bean will assume the user's account is with the server in IMServer , and will append that hostname to JabberId before
sending the request.
Name will contain the name that is to be associated with JabberId in this entity's roster. It may be the empty string, "".
Groups is either the empty string ("") or a comma-
separated list of groups to which JabberId is to be added. If JabberId already exists in the buddy list, it will be updated
to exist only in the specified groups. A buddy's group list can also
be modified by the Buddies property.
The Add method will make a subscription request to the presence
of the specified JabberId . Upon receiving this request, the
server will add an entry into this user's buddy list with a subscription
of type subscriptionNone (0) if there was no previous entry (if this
user has already allowed JabberId to subscribe to this user's
presence, there will already be an entry of type subscriptionFrom (2)).
If the contact chooses to allow the subscription, the server will update
the entry and a BuddyUpdate event will fire with the new subscription
value ( subscriptionTo (1) if this is a new contact, or subscriptionBoth (3) if the contact is now mutual).
The XMPP protocol permits XMPP (Jabber) clients to communicate
with foreign IM networks such as AIM, MSN, SMS, and others through the
use of gateway servers that translate between the foreign protocol and
XMPP. When sending or receiving presence information, messages, or
subscription requests, Domain will be a gateway for the
foreign network on which the contact resides and with
which this user has registered an account for that foreign network.
The Register method can be used to register with a foreign network
gateway.
IPWorksSSLException
public void cancel(java.lang.String jabberId)
throws IPWorksSSLException
If for any reason the user should want to undo a previously granted
subscription, this can be achieved through the Cancel method.
The method will unsubscribe the target from this user's presence,
thus preventing the target from seeing this user in the future.
IPWorksSSLException
public void changePassword(java.lang.String password)
throws IPWorksSSLException
This method changes the current user's password to the password that is specified. The bean must be connected to the server when this method is called.
IPWorksSSLException
public void changePresence(int presenceCode,
java.lang.String status)
throws IPWorksSSLException
PresenceCode should correspond the possible values of the Presence property:
By default, the bean sets the client presence to pcChat , meaning that the user is available. To change the initial status sent by the bean set Presence to the desired presence before calling Connect .
Note: offline is not officially supported by the XMPP specification, however some XMPP server implementations may recognize the value. Setting the client's presence state to this value may cause the server to respond with an Error .
Status can be any random string, including the empty string "".
IPWorksSSLException
public java.lang.String config(java.lang.String configurationString)
throws IPWorksSSLException
{@link ipworksssl.Xmpps#config Config} is a generic method available in every bean. It is used to set and retrieve {@link ipworksssl.Xmpps#config configuration settingsfor the bean.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the bean, access to these internal properties is provided through the {@link ipworksssl.Xmpps#config Config} method.
To set a configuration setting named PROPERTY , you must call Config("PROPERTY=VALUE") , where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a {@link ipworksssl.Xmpps#config configuration setting, you must call Config("PROPERTY") . The value will be returned as a string.
The bean accepts one or more of the following configuration settings . Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the bean, access to these internal properties is provided through the {@link ipworksssl.Xmpps#config Config} method.
NOTE: This is the same as Host . This setting is provided for use by beans that do not directly expose Firewall properties.
{@link ipworksssl.Xmpps#getRemotePort RemotePort} is the port in which the firewall will listen to. If set to 0, the firewall will select a random port. The binding (address and port) is provided through the {@link ipworksssl.XmppsConnectionStatusEvent ConnectionStatus} event.
The connection to the firewall is made by calling the {@link ipworksssl.Xmpps#connect Connect} method.
In the second scenario, {@link ipworksssl.Xmpps#config is a positive value, the system will attempt to send pending data until the specified {@link ipworksssl.Xmpps#config is reached. If this attempt fails, then the system will reset the connection.
The default behavior (which is also the default mode for stream sockets) might result in a long delay in closing the connection. Although the bean returns control immediately, the system could hold system resources until all pending data is sent (even after your application closes).
Setting this property to False forces an immediate disconnection. If you know that the other side has received all the data you sent (by a client acknowledgment, for example), setting this property to False might be the appropriate course of action.
If the bean is connected, the {@link ipworksssl.Xmpps#getLocalHost LocalHost} setting shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface).
{@link ipworksssl.Xmpps#getLocalPort LocalPort} cannot be changed once a connection is made. Any attempt to set this when a connection is active will generate an error.
This; setting is useful when trying to connect to services that require a trusted port in the client side. An example is the remote shell (rsh) service in UNIX systems.
If no {@link ipworksssl.Xmpps#getEOL EOL} is found, and {@link ipworksssl.Xmpps#config bytes are accumulated in the buffer, the {@link ipworksssl.XmppsDataInEvent DataIn} event is fired with the EOL parameter set to False, and the buffer is reset.
The minimum value for {@link ipworksssl.Xmpps#config is 256 bytes. The default value is 2048 bytes. The maximum value is 65536 bytes.
Use this setting with caution. Requesting a lower cipher strength than necessary could potentially cause serious security vulnerabilities in your application.
When the provider is OpenSSL, SSLCipherStrength is currently not supported. This functionality is instead made available through the {@link ipworksssl.Xmpps#config config setting.
When the provider is OpenSSL, SSLCipherStrength is currently not supported. This functionality is instead made available through the {@link ipworksssl.Xmpps#config config setting.
TLS 1.1 and TLS1.2 support are only available starting with Windows 7.
The special value "*" (default) picks the default SSL provider defined in the system.
Note: On Windows systems, the default SSL Provider is "Microsoft Unified Security Protocol Provider" and cannot be changed.
The special value "*" means that the component will pick all of the supported cipher suites. If SSLEnabledCipherSuites is set to any other value, only the specified cipher suites will be considered.
Multiple cipher suites are separated by semicolons.
Example values:
obj.config("SSLEnabledCipherSuites=*");
obj.config("SSLEnabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA");
obj.config("SSLEnabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA; SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA"); Possible values include:
SSLEnabledCipherSuites is used together with SSLCipherStrength .
Note: This configuration setting is available only in .NET and Java.
obj.Config("SSLEnabledProtocols=3072"); // TLS1.2 (supports SHA_256)
obj.Config("SSLAlgorithmList=CALG_SHA_256;CALG_MD5"); Possible values include:
This option is only valid in Windows.
IPWorksSSLException
public void connect(java.lang.String user,
java.lang.String password)
throws IPWorksSSLException
The Connect method performs the entire connection routine. This
includes connection to the IMServer , user logon and authentication,
and session initialization.
The Connected event will fire once for the initial TCP connection and again when the XMPP Logon is complete.
Since Connect is called with a user and password specified, the User and Password properties will updated accordingly.
IPWorksSSLException
public void disconnect()
throws IPWorksSSLException
The Disconnect method will send the disconnect command to
the notification server. Upon disconnection, a Disconnected event will be fired.
IPWorksSSLException
public void doEvents()
throws IPWorksSSLException
When DoEvents is called, the bean processes any
available events. If no events are available, it waits for a
preset period of time, and then returns.
IPWorksSSLException
public void interrupt()
throws IPWorksSSLException
If there is no method in progress, Interrupt simply returns, doing nothing.
IPWorksSSLException
public void probePresence(java.lang.String jabberId)
throws IPWorksSSLException
In the case that the user needs to update a particular entity's
presence this method can be used to retrieve it. After a successful
call, the server will either respond with the last known presence
for Jabber , or will send a presence element of type "error".
In either case, the respond will be returned by a Presence event.
IPWorksSSLException
public void queryRegister(java.lang.String XMPPServer)
throws IPWorksSSLException
Before a registration can be attempted, the application should use
the QueryRegister method to poll the host to which the user wishes
to register. This will gather all of the necessary fields that the user
must send to the server, and will populate the UserInfo collection
accordingly. After a successful query, all
entries in UserInfo values will be empty strings.
The possible registration fields are defined in the Jabber protocol specification as follows:
After the user has set all of the values in UserInfo , and
added any extra fields they may wish to include in their registration,
the application should make a call to Register .
If the bean is not already connected when this method is called, it will connect, poll the registration fields, and then disconnect.
IPWorksSSLException
public void register(java.lang.String XMPPServer)
throws IPWorksSSLException
Before a registration can be attempted, the application should use
the QueryRegister method to poll the host to which the user wishes
to register. This will gather all of the necessary fields that the user
must send to the server, and will populate the UserInfo collection
accordingly. After a successful query, all
entries in UserInfo values will be empty strings.
The possible registration fields are defined in the Jabber protocol specification as follows:
After the user has set all of the values in UserInfo , and
added any extra fields they may wish to include in their registration,
the application should make a call to Register .
If the bean is not already connected when this method is called, it will connect, poll the registration fields, and then disconnect.
A new account can be registered at any time, including while the bean is logged into the host under an existing account.
IPWorksSSLException
public void remove(java.lang.String jabberId,
java.lang.String name,
java.lang.String group)
throws IPWorksSSLException
JabberId is the Jabber ID of the entity to be removed. It should
be of form "user@host". If no hostname is specified, the
bean will assume the user's account is with the server in IMServer , and will append that hostname to JabberId before
sending the request.
Name should contain the name that is to be associated with JabberId in this entity's roster. It may be the empty string, "".
Groups may be either the empty string ("") or a comma- separated list of groups from which JabberId is to be removed. If no group is specified, the buddy will be completely removed from the buddy list.
After calling the Remove method, the server will remove the entry
from the server-side roster, and will push the result out to all
connected resources. A BuddyUpdate event will fire with
subscription of type subscriptionRemove , and the entry will
be removed from the Jabber bean's internally stored list.
IPWorksSSLException
public void retrieveRoster()
throws IPWorksSSLException
After the bean connects, it will automatically send a request to the server to retrieve the roster. However, should the user or application wish to update the entire roster, this method may be used to do so.
After a successful call to the RetrieveRoster method, the
server will respond with this entity's roster. The bean will
parse the roster and fire the Sync event once per item. This event may
also fire for each entity added to or removed from the roster.
IPWorksSSLException
public void sendCommand(java.lang.String command)
throws IPWorksSSLException
The SendCommand method will send the Command parameter
to the server. The command must be in valid XML format, and must
be recognizable to the IMServer .
The SendCommand method should only be used by programmers or
users who are connecting to non-standard servers whose command list
is not covered by the bean. Any responses that are defined in
the protocol specification will be returned by the appropriate event.
Any non-standard IQ message will be returned by the IQ event.
All other responses will be returned by the PITrail event.
IPWorksSSLException
public void sendFile(java.lang.String jabberId)
throws IPWorksSSLException
This method sends the file specified by LocalFile to the user specified by the JabberId parameter.
JabberId is the intended recipient of the message. It is of the form user@domain/resource . If a resource is not supplied, all logged-in instances of the user's account will receive the message.
If SetSendStream is called, the stream will be used as the source when sending the file.
The bean supports sending files using In-Band Bystestreams as defined in XEP-0047 and XEP-0096.
IPWorksSSLException
public java.lang.String sendMessage(java.lang.String jabberId)
throws IPWorksSSLException
JabberId is the intended recipient of the message. It is of the form user@domain/resource . If a resource is not supplied, all logged-in instances of the user's account will receive the message.
The bean associates several properties with messages it receives and sends. When it receives a message, the bean will parse out the corresponding values and set these properties before firing a MessageIn event. After the event returns control to the bean, the properties will be cleared (ie, they will be set to the empty string, "").
Before sending a message, the application should set the appropriate properties to be associated with the message. The bean will send only properties with non-empty string values (""), and will clear all properties after a successful send.
The associated properties are the following:
MessageType MessageSubject MessageThread MessageText MessageHTML MessageOtherData
If the parameter passed to SendMessage is prefixed with "@" the component will interpret the value as a domain when constructing the message. This allows for sending directly to sub-domains.
Note: the XMPP bean will generate and return a unique identifier for each message sent. This identifier can be used to track messages in conjunction with various Jabber Extension Protocols.
IPWorksSSLException
public void setReceiveStream(java.io.OutputStream receiveStream)
throws IPWorksSSLException
This method sets the stream to which the incoming file will be written.
This can be set from within the StartTransfer event when a file is received.
The file data will be written to the stream. The stream should be open and normally set to position 0. The bean will automatically close this stream if ipworksssl.Xmpps#config is true (default). The downloaded content will be written starting at the current position in the stream.
If a download stream is set, the incoming file will not be written to {@link ipworksssl.Xmpps#getLocalDirectory LocalDirectory} .
IPWorksSSLException
public void setSendStream(java.io.InputStream sendStream,
java.lang.String filename)
throws IPWorksSSLException
This method sets the stream to be sent to the recipient. Filename specifies the name of the file.
If an upload stream is set before the SendFile method is called, the content of the stream will be
read by the bean and sent. The stream should be open and normally set to position 0.
The bean will automatically close this stream if ipworksssl.Xmpps#config is true (default). If the stream is closed, you will need to call {@link ipworksssl.Xmpps#setSendStream SetSendStream} again before calling {@link ipworksssl.Xmpps#sendFile SendFile} again.
The content of the stream will be read from the current position all the way to the end.
Note: {@link ipworksssl.Xmpps#setSendStream SetSendStream} and {@link ipworksssl.Xmpps#getLocalFile LocalFile} will reset the other.
IPWorksSSLException
public void setUserInfoField(java.lang.String field,
java.lang.String value)
throws IPWorksSSLException
This method will search through UserInfo for the field name
in Field and set the corresponding value to Value .
If the field was not previously contained in UserInfo , it will
automatically added.
Before a registration can be attempted, the application should use
the QueryRegister method to poll the host to which the user wishes
to register. This will gather all of the necessary fields that the user
must send to the server, and will populate the UserInfo collection
accordingly. After a successful query, all
entries in UserInfo values will be empty strings.
The possible registration fields are defined in the Jabber protocol specification as follows:
After the user has set all of the values in UserInfo , and
added any extra fields they may wish to include in their registration,
the application should make a call to Register .
If the bean is not already connected when this method is called, it will connect, poll the registration fields, and then disconnect.
IPWorksSSLException
public void subscribeTo(java.lang.String jabberId)
throws IPWorksSSLException
This method will send a request for a subscription to JabberId 's presence. If the entity allows the subscription, a new item will be stored in the buddy list with the appropriate subscription type. Otherwise, no change will take place.
IPWorksSSLException
public void unregister()
throws IPWorksSSLException
If the user or application wishes to terminate an account with
the IMServer it should make a call to this method. After a
successful call, the account will be canceled and the bean
will be logged off the server, but not disconnected.
IPWorksSSLException
public void unsubscribeTo(java.lang.String jabberId)
throws IPWorksSSLException
This method will inform the server of the cancellation of subscription to JabberId 's presence. After a successful call the subscription type of the associated buddy list item will be updated.
IPWorksSSLException
public void addXmppsEventListener(XmppsEventListener l)
throws java.util.TooManyListenersException
java.util.TooManyListenersExceptionpublic void removeXmppsEventListener(XmppsEventListener l)
|
IP*Works! SSL V9 | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||