Text Messaging

PaltalkScene, the official Paltalk client, uses a single TCP connection for all its communication with server to provide text messaging service (i.e. separate connections are established for other services such as voice.) However there is a special message from server which instructs the client to switch to another server.

PaltalkScene first connects to a master server in order to find out which IP to connect to as server. At the time of writing, the master server domain name and port is:

router.paltalk-entry.com:5001

Remember that all the numeric variables and literals in this wiki are big-endian unless stated otherwise.

Client and server communicate by sending messages on the single TCP connection between them. Each message has this generic form:

struct
{
    uint16 type;
    uint16 version;
    uint16 length;
    uint8  payload[length];
};
type
A numeric code which identifies meaning and payload content type of message
version
Version number of message
length
Length of payload in bytes
payload
Content of the message

Some Observations

  • Usually if there exists two messages with similar purpose, but different directions, their «type» fields negated (2's complement) of each other.
  • The «version» field is usually 29 for messages coming from server and 93 for messages going to server.

Now we should describe different message types and their corresponding payload content structure:

  • Advertisements [122]: Server gives client list of advertisements
  • Authentication Status [160]: Server tells client about status of recent authentication process
  • Feedback [100]: Feedback of server to some message of client
  • Friends List [67]: Server gives client list of user's friends
  • Get UIN [-1131]: Request UIN of some nickname from server
  • Group Categories [413]: Server gives client list of categories of chat groups
  • Group Subcategories [414]: Server gives client list of subcategories of chat group categories
  • Hello [-117]: Just a hello from Paltalk server
  • Set UIN [1131]: Servers gives UIN of a nickname
  • Switch Server [-119]: Server instructs client to switch to given server IP and port
  • User Info [410]: Server gives some information about the user

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License