mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 23:59:08 +00:00
feat: first implementation of ws
This commit is contained in:
56
components/settings/WebsocketsText.tsx
Normal file
56
components/settings/WebsocketsText.tsx
Normal file
@@ -0,0 +1,56 @@
|
||||
import { apiAtom } from "@/providers/JellyfinProvider";
|
||||
import { useAtom } from "jotai";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { View, Text } from "react-native";
|
||||
import { currentlyPlayingItemAtom, playingAtom } from "../CurrentlyPlayingBar";
|
||||
|
||||
export const WebSocketsTest = () => {
|
||||
const [ws, setWs] = useState<WebSocket | null>(null);
|
||||
|
||||
const [api] = useAtom(apiAtom);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
if (!api || !api.accessToken || !api.basePath) return;
|
||||
|
||||
// Set up WebSocket connection
|
||||
const newWebSocket = new WebSocket(
|
||||
`wss://${api?.basePath
|
||||
.replace("https://", "")
|
||||
.replace("http://", "")}/socket?api_key=${api?.accessToken}&deviceId=${
|
||||
api?.deviceInfo.id
|
||||
}`
|
||||
);
|
||||
|
||||
newWebSocket.onopen = () => {
|
||||
console.log("WebSocket connection established");
|
||||
// You can also send data once the connection is open
|
||||
newWebSocket.send(
|
||||
JSON.stringify({ type: "greeting", payload: "Hello from client!" })
|
||||
);
|
||||
};
|
||||
|
||||
newWebSocket.onmessage = (e) => {};
|
||||
|
||||
newWebSocket.onerror = (e) => {
|
||||
console.error("WebSocket error:", e);
|
||||
};
|
||||
|
||||
newWebSocket.onclose = (e) => {
|
||||
console.log("WebSocket connection closed:", e.reason);
|
||||
};
|
||||
|
||||
setWs(newWebSocket);
|
||||
|
||||
// Clean up function
|
||||
return () => {
|
||||
newWebSocket.close();
|
||||
};
|
||||
}, [api]);
|
||||
|
||||
return (
|
||||
<View>
|
||||
<Text>WebSocket Demo</Text>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user