Я использовал next.js для моего фронта. Я генерирую еще один токен с секретным ключом, предоставленным провайдером Stream.io для доступа к прямой трансляции. Я не уверен, был ли мой способ реализации правильным, поскольку она вызывает ошибку, как я интегрирую генерацию токена для доступа к трансляции. < /P>
Пользователь входит в панель инструментов (с аутентифицированным токеном). Поток для трансляции. Но возникает ошибка: < /li>
< /ol>
[client]: не удалось подключить ошибку: {"код": 4, "centuscode" : 400, «Сообщение»: «WS не удалось с кодом: 4 и причина: неверный формат сообщений Auth», «Iswsfailure»: false}
at stablewsconnection.connect (connection.ts: 139: 17) < /p>
< /blockquote>
Я использовал поставщик STREE.IO SDK для потоковой функции. Это мой первый раз, я надеюсь, что я явно доставил свою проблему. Большое спасибо заранее. const Stream: React.FC = () => {
const apiKey = "thisIsTheApiKeyy";
const callId = "thiscallid";
const [client, setClient] = useState(null);
const [call, setCall] = useState(null);
useEffect(() => {
const initializeStream = async () => {
try {
const userData = await fetchUserData();
console.log("User Data:", userData);
const userId = userData?.user_id;
console.log("User ID:", userId);
if (userId) {
const response = await instance.post('/api/generate-token', { userId });
console.log("STREAM TOKEN response: ", response);
const streamToken = response.data.token;
const streamClient = StreamVideoClient.getOrCreateInstance({
apiKey: apiKey,
user: { id: userId, name: "ML LIVE" },
token: streamToken,
});
setClient(streamClient);
const streamCall = streamClient.call("livestream", callId);
streamCall.join({ create: true });
setCall(streamCall);
} else {
console.error("User ID not found");
}
} catch (error) {
console.error("Error initializing Stream:", error);
}
};
initializeStream();
}, []);
if (!client || !call) {
return Loading...;
}
return (
);
}
export default Stream;
< /code>
Ниже приведен код бэкэнд с использованием Express
Backend Generate Thoken Preme < /p>
router.post('/generate-token', (req, res) => {
const { userId } = req.body;
if (!userId) {
return res.status(400).json({ error: 'User ID is required' });
}
try {
const token = jwt.sign({ user_id: userId }, process.env.STREAM_API_SECRET, {
algorithm: 'HS256',
});
res.json({ token });
} catch (error) {
console.error('Error generating token:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... -invalid-a
Code":4,"StatusCode":400,"message":"Сбой WS с кодом: 4 и причина: неверный формат сообщения аутентификации","isWSFailure ⇐ Javascript
Форум по Javascript
1737726419
Anonymous
Я использовал next.js для моего фронта. Я генерирую еще один токен с секретным ключом, предоставленным провайдером Stream.io для доступа к прямой трансляции. Я не уверен, был ли мой способ реализации правильным, поскольку она вызывает ошибку, как я интегрирую генерацию токена для доступа к трансляции. < /P>
Пользователь входит в панель инструментов (с аутентифицированным токеном). Поток для трансляции. Но возникает ошибка: < /li>
< /ol>
[client]: не удалось подключить ошибку: {"код": 4, "centuscode" : 400, «Сообщение»: «WS не удалось с кодом: 4 и причина: неверный формат сообщений Auth», «Iswsfailure»: false}
at stablewsconnection.connect (connection.ts: 139: 17) < /p>
< /blockquote>
Я использовал поставщик STREE.IO SDK для потоковой функции. Это мой первый раз, я надеюсь, что я явно доставил свою проблему. Большое спасибо заранее. const Stream: React.FC = () => {
const apiKey = "thisIsTheApiKeyy";
const callId = "thiscallid";
const [client, setClient] = useState(null);
const [call, setCall] = useState(null);
useEffect(() => {
const initializeStream = async () => {
try {
const userData = await fetchUserData();
console.log("User Data:", userData);
const userId = userData?.user_id;
console.log("User ID:", userId);
if (userId) {
const response = await instance.post('/api/generate-token', { userId });
console.log("STREAM TOKEN response: ", response);
const streamToken = response.data.token;
const streamClient = StreamVideoClient.getOrCreateInstance({
apiKey: apiKey,
user: { id: userId, name: "ML LIVE" },
token: streamToken,
});
setClient(streamClient);
const streamCall = streamClient.call("livestream", callId);
streamCall.join({ create: true });
setCall(streamCall);
} else {
console.error("User ID not found");
}
} catch (error) {
console.error("Error initializing Stream:", error);
}
};
initializeStream();
}, []);
if (!client || !call) {
return Loading...;
}
return (
);
}
export default Stream;
< /code>
Ниже приведен код бэкэнд с использованием Express
Backend Generate Thoken Preme < /p>
router.post('/generate-token', (req, res) => {
const { userId } = req.body;
if (!userId) {
return res.status(400).json({ error: 'User ID is required' });
}
try {
const token = jwt.sign({ user_id: userId }, process.env.STREAM_API_SECRET, {
algorithm: 'HS256',
});
res.json({ token });
} catch (error) {
console.error('Error generating token:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79384567/code4-statuscode400-messagews-failed-with-code-4-and-reason-invalid-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия