public static void initialize(String apiKey, String privateKey)
Initializes the singleton instance of WarpClient with the developer credentials
Parameters
apiKey - The Application key given when the application was created.
secretKey - The secret key corresponding to the application key given when the application was created.
Returns
void
public void connectWithUserName(String username)
Sets up your connection with the AppWarp cloud server. The username
passed in this method must be unique across all other concurrently
connected users. If two users with the same name try to connect at the
same time, then the last one will win and the older one will get
disconnected. The result of the operation is provided in the
onConnectDone callback of the
ConnectionRequestListener.
Parameters
username - Username of the player
Returns
void
Disconnects the connection with the AppWarp server. The result for this
request will be provided in the onDisConnectDone callback of the
ConnectionRequestListener.
Parameters
Returns
void
Sends a join lobby request to the server. Result of the request is provided in the onJoinLobbyDone callback of the registered
LobbyRequestListener objects.
Parameters
Returns
void
Sends a leave lobby request to the server. Result of the request is provided in the onLeaveLobbyDone callback of the registered
LobbyRequestListener objects.
Parameters
Returns
void
public void subscribeLobby()
Sends a subscribe lobby request to the server. Result of the request is
provided in the onSubscribeLobbyDone callback of the registered
LobbyRequestListener objects. Users which have subscribed to the lobby receive chat events
from other users in the lobby as well as join/leave notifications about
all players to and fro the lobby and all the rooms. In addition, lobby
subscribers get notifications when a new room is created or deleted. All
these notification events are given in the registered
NotifyListener objects.
Parameters
Returns
void
public void unsubscribeLobby()
Sends a unsubscribe lobby request to the server. Result of the request
is provided in the onUnsubscribeLobbyDone callback of the
LobbyRequestListener.
Parameters
Returns
void
public void joinRoom(String roomId)
Sends a join room request to the server. Result of the request is provided in the onJoinRoomDone callback of the registered
RoomRequestListener objects. A user can only be joined in one location (room or lobby) at a
time. If a user joins a room, it will automatically be removed from its
current location.
Parameters
roomId - Id of the room to be joined
Returns
void
public void joinRoomInRange(int minUesrs, int maxUesrs, boolean maxPreferred)
Sends a join room request to the server with the condition that the room
must have at least minUsers and at Most maxUsers. Result of the request
is provided in the onJoinRoomDone callback of the registered
RoomRequestListener. This is useful is supporting quick play modes.
Parameters
minUsers- number of minimum users in room to be joined
maxUsers- number of maximum users in room to be joined
maxPreferred- flag to specify search priority for room to be joined
Returns
void
Join Room With Properties
public void joinRoomWithProperties(Hashtable tableProperties)
Sends a join room request to the server with the condition that the room
must have a matching set of property value pairs associated with it.
This is useful in match making. Result of the request is provided in the
onJoinRoomDone callback of the registered
RoomRequestListener.
Parameters
tableProperties- properties of the room to be joined
Returns
void
public void leaveRoom(String roomId)
Sends a leave room request to the server. Result of the request is provided in the onLeaveRoomDone callback of the registered
RoomRequestListener.
Parameters
roomId - Id of the room to be left
Returns
void
public void createRoom(String name, String owner, int maxUsers,Hashtable<String,Object> tableProperties)
Sends a create room request to the server with the given meta data.
Result of the request is provided in the onCreateRoomDone callback of
the registered
ZoneRequestListener objects. If successful, this will create a dynamic room at the server.
These rooms lifetime is limited till the time users are inside it. Read
more about
Rooms here.
Parameters
name - name of the room
owner - administrator of the room
maxUsers - number of maximum users allowed in the room
tableProperties - properties of room for matchmaking (pass null if not required)
Returns
void
public void deleteRoom(String roomId)
Sends a delete room request to the server. Result of the request is provided in the onDeleteRoomDone callback of the registered
ZoneRequestListener objects. Only dynamic rooms can be deleted through this API. Static
rooms (created from AppHQ) can not be deleted through this. Read more
about
Rooms here.
Parameters
roomId - Id of the room to be deleted
Returns
void
public void subscribeRoom(String roomId)
Sends a subscribe room request to the server. Result of the request is
provided in the onSubscribeRoomDone callback of the registered
RoomRequestListener objects. Once subscribed, the client will receive all notifications
from the room such as chat, update and property change events. In
addition the client will also receive notifications when a user joins or
leaves the subscribed room. These notifications are given in the
registered
NotifyListener objects.
Parameters
roomId - Id of the room to be subscribed
Returns
‘void’
public void unsubscribeRoom(String roomId)
Sends a unsubscribe room request to the server. Result of the request is
provided in the onUnSubscribeRoomDone callback of the registered
RoomRequestListener objects.
Parameters
roomId - Id of the room to be subscribed
Returns
void
public void sendChat(String message)
Sends a chat message to the room (or lobby) in which the user is
currently joined. Result of the request is provided in the
onSendChatDone callback of the registered
ChatRequestListener objects. All users who are subscribed to the location in which the
message is sent will get a onChatReceived event on their registered
NotifyListener objects.
Parameters
message - message to be send
Returns
void
Sends a private message to the given user if its online. Result of
the request is provided in the onSendPrivateChatDone callback of the
registered ChatRequestListener objects. The sender and receiver don’t need to be in the same room or
lobby for the private message to be delivered. This is useful in
building invite/challenge friend like scenarios. If successful, the
receiver will get a onPrivateChatReceived event on its registered NotifyListener objects.
public void sendPrivateChat(String username, String message)
Parameters
username - recipient of the message
message - message to be send
Returns
void
public void sendUpdatePeers(byte[] update)
Sends a byte array update message to room in which the user is currently
joined. Result of the request is provided in the onSendUpdateDone
callback of the registered
UpdateRequestListener objects. All users who are subscribed to the room in which the update
is sent will get a onUpdatePeersReceived event on their registered
NotifyListener objects. This is useful if developers want to send their own binary
encoded data across and is useful in minimizing the payload exchanged
between the clients and AppWarp cloud server. The size of each message
should be limited to 1000 bytes. The frequency at which these messages
can be processed is not restricted by the server. However, the latency
involved is largely determined by the client’s bandwidth. The
corresponding UDP flavor of this API is sendUdpUpdatePeers, which is
unreliable and may not work over cellular data connections – hence no
result callback should be expected from it. The behavior is otherwise
similar.
Parameters
update - binary data to be send
Returns
void
public void getLiveRoomInfo(String roomId)
Retrieves the live information of the given room from the server. Result
is provided in the onGetLiveRoomInfoDone callback of the registered
RoomRequestListener objects. The information includes the names of the currently joined
users, the rooms properties and any associated customData. This is
useful in getting a snapshot of a rooms state.
Parameters
roomId - Id of the room
Returns
void
public void getLiveUserInfo(String username)
Retrieves the live information of the user from the server. Result is
provided in the onGetLiveUserInfo callback of the registered
ZoneRequestListener objects. The information (if user is online) includes the current
location of the user and any associated custom data. It is useful in
building scenarios where you want to find if a users friends are online
or not and then join their room if found online.
Parameters
username - user who's information is requested
Returns
void
public void getLiveLobbyInfo()
Retrieves live information of the lobby from the server. Result is
provided in the onGetLiveLobbyInfo callback of the registered
LobbyRequestListener objects. The information returned includes the names of the users who are currently joined in the lobby.
Parameters
Returns
void
public void setCustomUserData(String userName, String customData)
Updates the custom data associated with the given user on the server (if
the given user is online). Result is provided in the
onSetCustomUserDataDone callback of the registered
ZoneRequestListener objects. It can be useful in setting status messages or avatar url’s etc for online users.
Parameters
userName - user for whom custom data has to be update
customData - custom data that will be set for the user
Returns
void
Updates the custom data associated with the given room on the server.
The result is provided in the onSetCustomRoomDataDone callback of the
registered RoomRequestListener objects. It is recommended you use the room’s properties where ever
possible. Use this when you need to associate data with a room which can
not be represented as key value pairs.
public void SetCustomRoomData(String roomId, String customRoomData)
Parameters
roomId - Id of the room
customRoomData - custom data that will be set for the room
Returns
void
public void updateRoomProperties(String roomID, Hashtable tableProperties, String[] removeArray)
Updates the properties associated with the given room on the server.
Result is provided in the onUpdatePropertyDone callback of the
registered
RoomRequestListener objects. Properties which are not found on the server, will be added
while properties which are already present will simply be updated with
the new values. You can also specify the list of properties that you
want to remove from the remove. Update property will fail if any other
user has lock on same property that you are going to update or remove.
This request (if successful) will also result in an
onUserChangeRoomProperty notification on the registered
NotifyListener objects to be triggered for all subscribed users of the room.
Parameters
roomId - Id of the room
tableProperties - properties that will be set for the room
removeArray - properties that will be removed for the room
Returns
void
public void lockProperties(Hashtable tableProperties)
Lock the properties associated with the joined room on the server for
requested user. Result is provided in the onLockPropertyDone callback of
the registered
RoomRequestListener objects. Lock properties will fail if any other user has lock on same
property, otherwise property will be added in lockTable with owner name.
This request (if successful) will also result in an
onUserChangeRoomProperty notification on the registered
NotifyListener objects to be triggered for all subscribed users of the room.
Parameters
lockProperties - properties to be lock for the room
Returns
void
public void lockProperties(String[] unlockProperties)
Unlock the properties associated with the joined room on the server for
requested user. Result is provided in the onUnlockPropertyDone callback
of the registered
RoomRequestListener objects. Unlock properties will fail if any other user has lock on same
property, otherwise property will be removed from lock table. This
request (if successful) will also result in an onUserChangeRoomProperty
notification on the registered
NotifyListener objects to be triggered for all subscribed users of the room.
Parameters
unlockProperties - properties to be unlock for the room
Returns
void
public void getOnlineUsers()
Retrieves usernames of all the users connected (online) to the server.
Result is provided in the onGetOnlineUsers callback of the registered
ZoneRequestListener objects.
Parameters
Returns
void
public void getAllRooms()
Retrieves the room ids of all the rooms on the server. Result is provided in the onGetAllRoomsDone callback of the registered
ZoneRequestListener objects. To get a filtered list of rooms, use the
GetRoomInRange or
GetRoomWithProperties APIs.
Parameters
Returns
void
public void getRoomInRange(int minUsers, int maxUsers)
Retrieves information of the rooms that contain at least minUsers and at
most maxUsers in them. Result is provided in the onGetMatchedRoomsDone
callback of the registered
ZoneRequestListener objects. This is useful in building a filtered list of rooms.
Parameters
minUsers- number of minimun users in room to be joined
maxUsers- number of maximum users in room to be joined
Returns
void
public void getRoomWithProperties(Hashtable properties)
Retrieves information of the room that contain properties which match
with the given properties. Result is provided in the
onGetMatchedRoomsDone callback of the registered
ZoneRequestListener objects. This is useful in building a filtered list of rooms.
Parameters
properties- properties of the room to be joined
Returns
void
Add Connection Request Listener
public void addConnectionRequestListener(ConnectionRequestListener listener)
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a response from the server is
received for Connect and Disconnect APIs. The object must implement the
ConnectionRequestListener interface.
Parameters
listener - method for listening to the request
Returns
void
Add Zone Request Listener
public void addZoneRequestListener(ZoneRequestListener listener)
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a response from the server is
received for zone level requests such as create/delete room or live user
info requests. The object must implement the
ZoneRequestListener interface.
Parameters
listener - method for listening to the request
Returns
void
Add Room Request Listener
public void addRoomRequestListener(RoomRequestListener listener)
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a response from the server is
received for requests pertaining to a room. The object must implement
the
RoomRequestListener interface.
Parameters
listener - method for listening to the request
Returns
void
Add Lobby Request Listener
public void addLobbyRequestListener(LobbyRequestListener listener)
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a response from the server is
received for lobby level request. The object must implement the
LobbyRequestListener interface.
Parameters
listener - method for listening to the request
Returns
void
Add Notification Listener
public void addNotificationListener(NotifyListener listener)
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a notification is received from the
server from any subscribed location (room or lobby). The object must
implement the
NotifyListener interface.
Parameters
listener - method for listening to the request
Returns
void
Add Update Request Listener
Adds (registers) the given listener object to the list of objects on
which callbacks will be invoked when a response from the server is
received for a SendUpdatePeers request. The object must implement the UpdateRequestListener interface.
public void addUpdateRequestListener(UpdateRequestListener listener)
Parameters
listener - method for listening to the request
Returns
void
Returns the current connection state of the WarpClient instance. The values returned are according to the following.
int CONNECTED = 0;
int CONNECTING = 1;
int DISCONNECTED = 2;
public int getConnectionState()
Parameters
void
Returns
int