mirror of https://github.com/jetkvm/kvm.git
chore: show hid rpc version
This commit is contained in:
parent
3dd8645295
commit
c459929a91
|
@ -15,7 +15,7 @@ import { useHidRpc } from "@/hooks/useHidRpc";
|
||||||
export default function InfoBar() {
|
export default function InfoBar() {
|
||||||
const { keysDownState } = useHidStore();
|
const { keysDownState } = useHidStore();
|
||||||
const { mouseX, mouseY, mouseMove } = useMouseStore();
|
const { mouseX, mouseY, mouseMove } = useMouseStore();
|
||||||
const { rpcHidReady } = useHidRpc();
|
const { rpcHidStatus } = useHidRpc();
|
||||||
|
|
||||||
const videoClientSize = useVideoStore(
|
const videoClientSize = useVideoStore(
|
||||||
(state: VideoState) => `${Math.round(state.clientWidth)}x${Math.round(state.clientHeight)}`,
|
(state: VideoState) => `${Math.round(state.clientWidth)}x${Math.round(state.clientHeight)}`,
|
||||||
|
@ -105,7 +105,7 @@ export default function InfoBar() {
|
||||||
{debugMode && (
|
{debugMode && (
|
||||||
<div className="flex w-[156px] items-center gap-x-1">
|
<div className="flex w-[156px] items-center gap-x-1">
|
||||||
<span className="text-xs font-semibold">HidRPC State:</span>
|
<span className="text-xs font-semibold">HidRPC State:</span>
|
||||||
<span className="text-xs">{rpcHidReady ? "Ready" : "Not Ready"}</span>
|
<span className="text-xs">{rpcHidStatus}</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
|
@ -163,6 +163,13 @@ export function useHidRpc(onHidRpcMessage?: (payload: HidRpcMessage) => void) {
|
||||||
return rpcHidChannel?.readyState === "open" && rpcHidProtocolVersion !== null;
|
return rpcHidChannel?.readyState === "open" && rpcHidProtocolVersion !== null;
|
||||||
}, [rpcHidChannel, rpcHidProtocolVersion]);
|
}, [rpcHidChannel, rpcHidProtocolVersion]);
|
||||||
|
|
||||||
|
const rpcHidStatus = useMemo(() => {
|
||||||
|
if (!rpcHidChannel) return "N/A";
|
||||||
|
if (rpcHidChannel.readyState !== "open") return rpcHidChannel.readyState;
|
||||||
|
if (!rpcHidProtocolVersion) return "handshaking";
|
||||||
|
return `ready (v${rpcHidProtocolVersion})`;
|
||||||
|
}, [rpcHidChannel, rpcHidProtocolVersion]);
|
||||||
|
|
||||||
const reportKeyboardEvent = useCallback(
|
const reportKeyboardEvent = useCallback(
|
||||||
(keys: number[], modifier: number) => {
|
(keys: number[], modifier: number) => {
|
||||||
if (!rpcHidReady) return;
|
if (!rpcHidReady) return;
|
||||||
|
@ -262,5 +269,6 @@ export function useHidRpc(onHidRpcMessage?: (payload: HidRpcMessage) => void) {
|
||||||
reportRelMouseEvent,
|
reportRelMouseEvent,
|
||||||
rpcHidProtocolVersion,
|
rpcHidProtocolVersion,
|
||||||
rpcHidReady,
|
rpcHidReady,
|
||||||
|
rpcHidStatus,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,21 +134,24 @@ func newSession(config SessionConfig) (*Session, error) {
|
||||||
}()
|
}()
|
||||||
|
|
||||||
scopedLogger.Info().Str("label", d.Label()).Uint16("id", *d.ID()).Msg("New DataChannel")
|
scopedLogger.Info().Str("label", d.Label()).Uint16("id", *d.ID()).Msg("New DataChannel")
|
||||||
|
|
||||||
switch d.Label() {
|
switch d.Label() {
|
||||||
case "hidrpc":
|
case "hidrpc":
|
||||||
session.HidChannel = d
|
session.HidChannel = d
|
||||||
d.OnMessage(func(msg webrtc.DataChannelMessage) {
|
d.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||||
|
l := scopedLogger.With().Str("data", string(msg.Data)).Int("length", len(msg.Data)).Logger()
|
||||||
|
|
||||||
if msg.IsString {
|
if msg.IsString {
|
||||||
scopedLogger.Warn().Str("data", string(msg.Data)).Msg("received string data in HID RPC message handler")
|
l.Warn().Msg("received string data in HID RPC message handler")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(msg.Data) < 1 {
|
if len(msg.Data) < 1 {
|
||||||
scopedLogger.Warn().Int("length", len(msg.Data)).Msg("received empty data in HID RPC message handler")
|
l.Warn().Msg("received empty data in HID RPC message handler")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
scopedLogger.Debug().Str("data", string(msg.Data)).Msg("received data in HID RPC message handler")
|
l.Trace().Msg("received data in HID RPC message handler")
|
||||||
|
|
||||||
// Enqueue to ensure ordered processing
|
// Enqueue to ensure ordered processing
|
||||||
session.hidQueue <- msg
|
session.hidQueue <- msg
|
||||||
|
|
Loading…
Reference in New Issue