First of, don't ask client "what is your interest", that equal to just send them the knowledge about every object. Instead, when server updates the world, check where the player is, decide "area of interest" for that client, gather data for it and send it.
In very simple example, that is no where fast enough for object amounts that MMORPG's have, it could go something like this:
// List of all objects in the world
// Max distance to objects, which data is sent to client
for(MyObject obj in allWorldObjects)
if(DistanceBetweenClientAndObject(client,obj) < clientInterestDistance)
So, in this example, we update would gather client data, making it as compact as we can so that we don't send huge amounts of data AND to make it little harder to cheat. Obviously List is not the best way to go, if object count moves up to hundreds or thousands. Preferable, you should always keep objects categorized so, that they are easy to fetch as a group. Meaning, that when you update object, you check position and add it to somekind of collection that helps you to get objects around coordinates x,y. Thus, avoiding you the performance problems, when looping 10000 objects for each client, 20 times in second.