اقوم بعمل تطبيق فيديو شات .. وقمت باستخدام مكتبة جديدة لتسهيل الامور وهي agora-rn-uikit. والتطبيق يعمل بنجاح حيث يمكنني انشاء اتصال فيديو مع الجانب الاخر ..
ولكن لكي يعمل التطبيق انا اقوم بانشاء التوكن يدويا من موقع اجورا حيث اقوم بالضغط علي "Generate temp RTC token" وهو توكن مؤقت .. لذا قمت بعمل سيرفر ب نود جي اس لانشاء التوكن آليا وليس يدويا وهذا هو الكود
const express = require("express");const{RtcTokenBuilder,RtcRole}= require("agora-access-token");
require("dotenv/config");
console.log(process.env.PORT);const app = express();const nocache =(_, resp, next)=>{
resp.header("Cache-Control","private, no-cache, no-store, must-revalidate");
resp.header("Expires","-1");
resp.header("Pragma","no-cache");
next();};const generateRTCToken =(req, resp)=>{
resp.header("Access-Control-Allow-Origin","*");const channelName = req.params.channel;if(!channelName){return resp.status(500).json({ error:"channel is required"});}
let uid = req.params.uid;if(!uid || uid ===""){return resp.status(500).json({ error:"uid is required"});}// get role
let role;if(req.params.role ==="publisher"){
role =RtcRole.PUBLISHER;}elseif(req.params.role ==="audience"){
role =RtcRole.SUBSCRIBER;}else{return resp.status(500).json({ error:"role is incorrect"});}
let expireTime = req.query.expiry;if(!expireTime || expireTime ===""){
expireTime =3600;}else{
expireTime = parseInt(expireTime,10);}const currentTime =Math.floor(Date.now()/1000);const privilegeExpireTime = currentTime + expireTime;
let token;if(req.params.tokentype ==="userAccount"){
token =RtcTokenBuilder.buildTokenWithAccount(
process.env.APP_ID,
process.env.APP_CERTIFICATE,
channelName,
uid,
role,
privilegeExpireTime
);}elseif(req.params.tokentype ==="uid"){
token =RtcTokenBuilder.buildTokenWithUid(
process.env.APP_ID,
process.env.APP_CERTIFICATE,
channelName,
uid,
role,
privilegeExpireTime
);}else{return resp.status(500).json({ error:"token type is invalid"});}return resp.json({ rtcToken: token, channel: channelName });};
app.get("/rtc/:channel/:role/:tokentype/:uid", nocache, generateRTCToken);
app.listen(process.env.PORT,()=>{
console.log(`Listening on port: ${process.env.PORT}`);});
لكن للآسف هذا التوكن لا يعمل ويظهر ف التطبيق شاشة سوداء والخطآ 110. ولكن عندما اضيف key جديد باسم rtcUid واعطيه القيمة 1 فان التطبيق يعمل والشاشة السوداء تختفي وتظهر الكاميرا ولكن بشكل خاص .. اعني الطرف الاخر لا يظهر لي وانا لا اظهر له ف الفيديو
لا اعرف ما المشكلة مع ان التوكن الذي اقوم باستخراجه يدويا من موقع اجورا يعمل بشكل صحيح مع الكود الخاص ب رياكت ناتيف اللي كتبته فوق .. واستطيع ان اقوم بالاتصال مع الاخر وكلانا نظهر لبعضنا.
كيف اقوم بانشاء توكن يعمل مع هذه المكتبة الجديدة .. agora-rn-uikit.
السؤال
Ahmed Sawy
اقوم بعمل تطبيق فيديو شات .. وقمت باستخدام مكتبة جديدة لتسهيل الامور وهي agora-rn-uikit. والتطبيق يعمل بنجاح حيث يمكنني انشاء اتصال فيديو مع الجانب الاخر ..
هذا كود التطبيق
ولكن لكي يعمل التطبيق انا اقوم بانشاء التوكن يدويا من موقع اجورا حيث اقوم بالضغط علي "Generate temp RTC token" وهو توكن مؤقت .. لذا قمت بعمل سيرفر ب نود جي اس لانشاء التوكن آليا وليس يدويا وهذا هو الكود
لكن للآسف هذا التوكن لا يعمل ويظهر ف التطبيق شاشة سوداء والخطآ 110. ولكن عندما اضيف key جديد باسم rtcUid واعطيه القيمة 1 فان التطبيق يعمل والشاشة السوداء تختفي وتظهر الكاميرا ولكن بشكل خاص .. اعني الطرف الاخر لا يظهر لي وانا لا اظهر له ف الفيديو
لا اعرف ما المشكلة مع ان التوكن الذي اقوم باستخراجه يدويا من موقع اجورا يعمل بشكل صحيح مع الكود الخاص ب رياكت ناتيف اللي كتبته فوق .. واستطيع ان اقوم بالاتصال مع الاخر وكلانا نظهر لبعضنا.
كيف اقوم بانشاء توكن يعمل مع هذه المكتبة الجديدة .. agora-rn-uikit.
رابط هذا التعليق
شارك على الشبكات الإجتماعية
0 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.