Pass disconnection reason (if known) to clients
This commit is contained in:
parent
1ba00a66eb
commit
6754ec5e10
|
@ -33,6 +33,7 @@ import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.concurrent.atomic.LongAdder;
|
import java.util.concurrent.atomic.LongAdder;
|
||||||
import javax.ws.rs.WebApplicationException;
|
import javax.ws.rs.WebApplicationException;
|
||||||
|
import io.micrometer.core.instrument.Tags;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -383,10 +384,25 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleDisplacement(final boolean connectedElsewhere) {
|
public void handleDisplacement(final boolean connectedElsewhere) {
|
||||||
Metrics.counter(DISPLACEMENT_COUNTER_NAME, List.of(UserAgentTagUtil.getPlatformTag(client.getUserAgent()))).increment();
|
final Tags tags = Tags.of(
|
||||||
|
UserAgentTagUtil.getPlatformTag(client.getUserAgent()),
|
||||||
|
Tag.of("connectedElsewhere", String.valueOf(connectedElsewhere)));
|
||||||
|
|
||||||
|
Metrics.counter(DISPLACEMENT_COUNTER_NAME, tags);
|
||||||
|
|
||||||
|
final int code;
|
||||||
|
final String message;
|
||||||
|
|
||||||
|
if (connectedElsewhere) {
|
||||||
|
code = 4409;
|
||||||
|
message = "Connected elsewhere";
|
||||||
|
} else {
|
||||||
|
code = 1000;
|
||||||
|
message = "OK";
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
client.close(1000, "OK");
|
client.close(code, message);
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
logger.warn("Orderly close failed", e);
|
logger.warn("Orderly close failed", e);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue