/** * Incoming mux control block, destined for the control channel (id 0) */ @Override public void onMuxNewChannelSlot(MuxNewChannelSlot slot) { if (policy.getBehavior() == WebSocketBehavior.SERVER) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"NewChannelSlot not allowed per spec"); } if (slot.isFallback()) { if (slot.getNumberOfSlots() == 0) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"Cannot have 0 number of slots during fallback"); } if (slot.getInitialSendQuota() == 0) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"Cannot have 0 initial send quota during fallback"); } } // TODO: handle channel slot }
MuxNewChannelSlot op = new MuxNewChannelSlot(); op.setRsv((byte)((b & 0x1E) >> 1)); op.setFallback((b & 0x01) != 0); op.setNumberOfSlots(read139EncodedSize(buffer)); op.setInitialSendQuota(read139EncodedSize(buffer)); events.onMuxNewChannelSlot(op); break;
byte b = (byte)((op.getOpCode() & 0x07) << 5); // opcode b |= (byte)(op.getRsv() & 0x0F) << 1; // rsv b |= (byte)(op.isFallback()?0x01:0x00); // fallback bit write139Size(payload,op.getNumberOfSlots()); write139Size(payload,op.getInitialSendQuota()); break;
MuxNewChannelSlot op = new MuxNewChannelSlot(); op.setRsv((byte)((b & 0x1E) >> 1)); op.setFallback((b & 0x01) != 0); op.setNumberOfSlots(read139EncodedSize(buffer)); op.setInitialSendQuota(read139EncodedSize(buffer)); events.onMuxNewChannelSlot(op); break;
byte b = (byte)((op.getOpCode() & 0x07) << 5); // opcode b |= (byte)(op.getRsv() & 0x0F) << 1; // rsv b |= (byte)(op.isFallback()?0x01:0x00); // fallback bit write139Size(payload,op.getNumberOfSlots()); write139Size(payload,op.getInitialSendQuota()); break;
/** * Incoming mux control block, destined for the control channel (id 0) */ @Override public void onMuxNewChannelSlot(MuxNewChannelSlot slot) { if (policy.getBehavior() == WebSocketBehavior.SERVER) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"NewChannelSlot not allowed per spec"); } if (slot.isFallback()) { if (slot.getNumberOfSlots() == 0) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"Cannot have 0 number of slots during fallback"); } if (slot.getInitialSendQuota() == 0) { throw new MuxPhysicalConnectionException(MuxDropChannel.Reason.UNKNOWN_MUX_CONTROL_BLOCK,"Cannot have 0 initial send quota during fallback"); } } // TODO: handle channel slot }