java-api-reference

Java

Java Client APIs

Initialize
public static void initialize ( String appKey ,  String s2Address ) 
Initializes the singleton instance of WarpClient with the appKey of the zone and the IP address of the AppWarp S2 server.

Parameters

appKey -  The  Application  key  of the zone its created from the admin dashboard. 
s2Address -  The IP address of the server where the AppWarp S2 zone is hosted. 

Returns

void

Connect With User Name
public void connectWithUserName ( String username, String authData ) 
Sets up an authenticated session with the Application zone on the server specified when the singleton was initialized. 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 first one will win and the seconds one will get an auth error. The result of the operation is provided in the onConnectDone callback of the ConnectionRequestListener

.

Parameters

username - Username of the player

authData - custom data for validation by the zone adaptor on the server

Returns

void

Disconnect
 public void disconnect () 
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

Join Lobby
public void joinLobby () 
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

Leave Lobby
 public void leaveLobby () 
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

Subscribe Lobby
 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

Unsubscribe Lobby
 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

Join Room
 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

Join Room WithN User
 public void joinRoomWithNUser ( int userCount ) 
Sends a join room request to the server with the condition that the room must have at least the given number of users. Result of the request is provided in the onJoinRoomDone callback of the registered RoomRequestListener. This is useful is supporting quick play modes.

Parameters

userCount- number of users in room to be joined

Returns

void

Join Room In Range
 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 < String , Object > 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

Leave Room
 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

Create Room
 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

Create Turn Room
Sends a create turn based 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 turn based room at the server. These rooms lifetime is limited till the time users are inside it. Read more about Rooms here.
  public void  createTurnRoom ( String  name ,  String  owner , int  maxUsers ,  Hashtable < String ,  Object >  tableProperties , int  turnTime ) 

Parameters

name -  name  of  the  room 
owner -  owner  of  the  room  ( behavior  and  usage  of  this  meta  property  is  up  to  the  developer ) 
maxUsers -  number  of  maximum  users  allowed  in  the  room 
tableProperties -  properties  of  room  ( can  be  null ) 
turnTime -  the  time  ( in  seconds )  allowed for  a  user  to  complete  its  turn  and  send  a  move . 

Returns

void

Send Move
Sends a move to the server for the joined turn based room.Result of the request is provided in the onSendMoveDone callback of the registered TurnBasedRoomListener objects. If the joined user is not a turn based room or if its not the users turn, this request will fail. If successful, this will result in onMoveCompleted notification for all the subscribed users on the registered NotifyListener objects.
  public void  sendMove ( String  moveData ) 

Parameters

moveData -  any  meta  data  associated  with  the  move 

Returns

void

Delete Room
 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

Subscribe Room
 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’

Unsubscribe Room
 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

Send Chat
 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

Send Private Chat
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

Send Update Peers
 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

Get Live Room Info
 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

Get Live User Info
 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

Get Live Lobby Info
 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

Set Custom User Data
 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

Set Custom Room Data
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

Update Room Properties
public void updateRoomProperties ( String roomID , Hashtable < String , Object > 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

Lock Properties
public void lockProperties ( Hashtable < String , Object > 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

Unlock Properties
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

Get Online Users
 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

Get All Rooms
 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 GetRoomWithNUser or GetRoomWithProperties APIs.

Parameters

Returns

void

Get Room WithN User
 public void getRoomWithNUser ( int userCount ) 
Retrieves information of the rooms that contain at least n users 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

userCount- number of users in room to be joined

Returns

void

Get Room In Range
 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

Get Room With Properties
 public void getRoomWithProperties ( Hashtable < String , Object > 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

Get Connection State
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

Add Turn Based Room 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 SendMove request. The object must implement the TurnBasedRoomListener interface.
  public void  AddTurnBasedRoomRequestListener ( TurnBasedRoomListener  listener ) 

Parameters

listener - listener object

Returns

void