public static void Initialize(String apiKey, String privateKey)
Initializes the singleton instance of WarpClient with the developer
credentials. This has to be called only once during the lifetime of the
application. It is required before you can call any other API.
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
Sets the time allowed to the client to recover from an intermittent connection loss. This must be set before the initial connect API is called as that associates the value on the server for the given connection.
public void setRecoveryAllowance(int maxRecoveryTime)
Parameters maxRecoveryTime - time - the time (in seconds) allowed to the client to recover from intermittent connection loss
Returns void
Attempts to recover from an intermittent connection error. If successful, the client will be placed in the same room as before the loss and all its subscriptions will be maintained. The other subscribed users of the room, will receive onUserResumed notification. This can only be called if an established session was lost due to a connectivity error and the client got onConnectDone with a recoverable connection error code. The connection must be restored within the recovery allowance period, after which the server considers the session to be over (non-recoverable).
public void RecoverConnection()
Parameters Returns void
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
Connection Request Listener.
public void Connect(String username)
Parameters username - name 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
Connection Request Listener.
Parameters Returns void
Queries the connection state of the client with the server. The returned byte value should be interpreted as
Warp Connection State.
public byte GetConnectionState()
Parameters Returns byte
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
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.
public void SubscribeLobby()
Parameters Returns void
Sends a unsubscribe lobby request to the server. Result of the
request is provided in the onUnsubscribeLobbyDone callback of the
LobbyRequestListener.
public void UnsubscribeLobby()
Parameters Returns void
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.
public void JoinRoom(String roomId)
Parameters roomId - Id of the room to be joined
Returns void
Sends a join room request to the server with the given range of
joined users. 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. This enables developers to easily add quick-play
scenarios.
public void JoinRoomInRange(int minUserCount, int maxUserCount, bool maxPreferred)
Parameters minUserCount - minimum users in the room
maxUserCount - maximum users in the room
maxPreferred - prefer joining a room with more users
Returns void
Sends a request to the server to fetch a list of rooms with the given
range of joined users. Result of the request is provided in the
onGetMatchedRoomsDone callback of the registered
ZoneRequestListener objects.
public void GetRoomsInRange(int minUserCount, int maxUserCount)
Parameters minUserCount - minimum users in the room
maxUserCount - maximum users in the room
Returns void
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
deprecated and developers should use the JoinRoomInRange API instead.
public void JoinRoomWithNUser(int userCount)
Parameters userCount- minimum number of users in room
Returns void
Join Room With Properties
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.
public void JoinRoomWithProperties(Dictionary<String, Object> tableProperties)
Parameters tableProperties- properties of the room to be joined
Returns void
Sends a leave room request to the server. Result of the request is provided in the onLeaveRoomDone callback of the registered
RoomRequestListener.
public void LeaveRoom(String roomId)
Parameters roomId - Id of the room to be left
Returns void
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.
public void CreateRoom(String name, String owner, int maxUsers, Dictionary<String, Object> tableProperties)
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)
Returns void
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, Dictionary<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
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
Turn Based Room Listener 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
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.
public void DeleteRoom(String roomId)
Parameters roomId - Id of the room to be deleted
Returns void
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.
public void SubscribeRoom(String roomId)
Parameters roomId - Id of the room to be subscribed
Returns
Sends a unsubscribe room request to the server. Result of the request
is provided in the onUnSubscribeRoomDone callback of the registered
RoomRequestListener objects.
public void UnSubscribeRoom(String roomId)
Parameters roomId - Id of the room to be unsubscribed
Returns void
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.
public void SendChat(String message)
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
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 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.
public void SendUpdatePeers(byte[] update)
Parameters update - byte array data to be sent
Returns void
Sends a byte array update message to recipient user. Result of the request is provided in the
onSendPrivateUpdateDone callback of the registered
UpdateRequestListener objects. Remote user will get a onPrivateUpdateReceived event on their registered
NotifyListener objects. This is useful if developers want to send private data between the users. The corresponding UDP flavor of this API is
sendUDPPrivateUpdate, 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.
public void sendPrivateUpdate(String toUsername,byte[] update)
ParameterstoUsername - recipient username
update - byte array data to be sent
Returns void
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.
public void GetLiveRoomInfo(String roomId)
Parameters roomId - Id of the room
Returns void
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.
public void GetLiveUserInfo(String username)
Parameters username - user who's information is requested
Returns void
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.
public void GetLiveLobbyInfo()
Parameters Returns void
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.
public void SetCustomUserData(String userName, String customData)
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
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. 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.
public void UpdateRoomProperties(String roomID, Dictionary<String, Object> tableProperties, List<String> removeList)
Parameters
roomId - Id of the room
tableProperties- Properties of the room to be added or updated.
removeList - List of properties to be removed.
Returns void
Locks the given room properties associated with the currently joined
room on the server. Result is provided in the onLockPropertiesDone
callback of the registered
RoomRequestListener objects. If any property is currently locked by another user, this
request will fail. 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.
public void LockProperties(Dictionary<String, Object> lockedProperties)
Parameters
lockedProperties - dictionary of keys and their values to be locked for the user
Returns void
Unlocks the given room properties associated with the currently
joined room on the server. Result is provided in the
onUnlockPropertiesDone callback of the registered
RoomRequestListener objects. If any property is currently locked by another user, this
request will fail. 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.
public void UnlockProperties(List<String> properties)
Parameters
properties - list of keys to be unlocked for the user
Returns void
Retrieves usernames of all the users connected (online) to the
server. Result is provided in the onGetOnlineUsers callback of the
registered
ZoneRequestListener objects.
public void GetOnlineUsers()
Parameters Returns void
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.
public void GetAllRooms()
Parameters Returns void
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
deprecated and developers should use the GetRoomsInRange API instead.
public void GetRoomWithNUser(int userCount)
Parameters userCount - No of user in room
Returns void
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.
public void GetRoomWithProperties(Dictionary<String, Object> properties)
Parameters properties- Properties of the room to be matched
Returns void
Add Connection 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 Connect and Disconnect APIs. The object must implement the
ConnectionRequestListener interface.
public void AddConnectionRequestListener(ConnectionRequestListener listner)
Parameters listener - listener object
Returns void
Add 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 requests pertaining to a room. The object must implement
the
RoomRequestListener interface.
public void AddRoomRequestListener(RoomRequestListener listner)
Parameters listener - listener object
Returns void
Add Zone 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 zone level requests such as create/delete room or live user
info requests. The object must implement the
ZoneRequestListener interface.
public void AddZoneRequestListener(ZoneRequestListener listner)
Parameters listener - listener object
Returns void
Add Lobby 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 lobby level request. The object must implement the
Lobby Request Listener interface.
public void AddLobbyRequestListener(LobbyRequestListener listner)
Parameters listener - listener object
Returns void
Add Notification 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.
public void AddNotificationListener(NotifyListener listner)
Parameters listener - listener object
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 - listener object
Returns void
Add Chat 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 SendChat request. The object must implement the
ChatRequestListener interface.
public void AddChatRequestListener(ChatRequestListenerlistener listener)
Parameters listener - listener object
Returns void
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
Turn Based Room Listener interface.
public void AddTurnBasedRoomRequestListener(TurnBasedRoomListener listener)
Parameters listener - listener object
Returns void
Sends a start game to server in TurnBasedRoom. Result of this callback is provided in onStartGameDone of registered
TurnBasedRoomListener interface. If successful game will be started in TurnBasedRoom.
Parameters Returns void
Sends a stop game to server in TurnBasedRoom. Result of this callback is provided in onStopGameDone of registered
TurnBasedRoomListener interface. If successful game will be stopped in TurnBasedRoom.
Parameters Returns void
Sends get move history request to server in TurnBasedRoom. Result of this callback is provided in onGetMoveHistoryDone of registered
TurnBasedRoomListener interface.
public void getMoveHistory()
Parameters result-byte
history-MoveEvent[]
Returns void
setGeo allows you to connect to our cloud servers in locations other than the default location. This offers developers the choice to connect to the closest server depending on the client’s device location.
public void SetGeo(String geo)
Parameters
geo - server location. For e.g. US, EU, JAPAN
Returns
void