Server objects

PPS supports a special type of object called a server object. When a client writes to a server object, only the application that created it with the ?server option (called the "server") will get the message. Other clients cannot see that message.

At write time, PPS appends a unique identifier to the object name so that the "server" knows which client connection is sending the message. This allows the connection to have stateful information. For example:

@foo.1234

indicates object foo with client identifier 1234. When a client connects, the server reads a new object that is prefixed with a + symbol (for example, +@foo.1234). Disconnects are sent to the "server" and the + prefix is changed to a - prefix.

When a server replies, it must write the object name with the unique identifier appended so that the response is sent only to the client that is marked by the unique identifier. If a server does not append the unique identifier to the object name, the message will be broadcast to all clients that are connected to the object.

For more information about sending and receiving messages from server objects, see Working with server objects

An application that opens an object with the ?server option automatically becomes a critical publisher of that object. It also automatically receives notifications in delta mode.

CAUTION:
Do not duplicate file descriptors of server objects. Behavior with duplicate server file descriptors is undetermined.

The following figure shows a PPS transaction using the ?server option:

A PPS server transaction Figure 1. Using the ?server option