Client side message throttling. The server is configured with a hard limit, it
communicates that limit to the client which queues outgoing messages so that it does not exceed the limit. When the throttle is changed, the server does not apply the new throttle until the client has ACKed it to avoid edge cases where the client is up against the limit when the throttle changes. ActionScript side of all of this forthcoming as well as more testing. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5422 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -53,6 +53,7 @@ import com.threerings.presents.net.PongResponse;
|
||||
import com.threerings.presents.net.SubscribeRequest;
|
||||
import com.threerings.presents.net.UnsubscribeRequest;
|
||||
import com.threerings.presents.net.UnsubscribeResponse;
|
||||
import com.threerings.presents.net.UpdateThrottleMessage;
|
||||
|
||||
import static com.threerings.presents.Log.log;
|
||||
|
||||
@@ -199,6 +200,10 @@ public class ClientDObjectMgr
|
||||
} else if (obj instanceof PongResponse) {
|
||||
_client.gotPong((PongResponse)obj);
|
||||
|
||||
} else if (obj instanceof UpdateThrottleMessage) {
|
||||
UpdateThrottleMessage upmsg = (UpdateThrottleMessage)obj;
|
||||
_client.setOutgoingMessageThrottle(upmsg.messages, upmsg.period);
|
||||
|
||||
} else if (obj instanceof ObjectAction<?>) {
|
||||
ObjectAction<?> act = (ObjectAction<?>)obj;
|
||||
if (act.subscribe) {
|
||||
|
||||
Reference in New Issue
Block a user