无法使用Agora Web SDK NG在移动数据上发布RTC客户端

如何解决无法使用Agora Web SDK NG在移动数据上发布RTC客户端

我是WebRTC和Websockets的新手。我尝试使用Agora Web SDK NG进行一对一的视频通话,并且在同一网络上的两个设备(一台PC和一个Android移动设备)都能正常工作。将智能手机用于移动数据后,尽管它仍然可以同时在连接到路由器的PC上运行,但我无法再加入呼叫了。

这是我的函数,用于在Angular服务中启动呼叫:

async startCall(userId: string) {
    this.callStatus$.next('connecting');
    this.rtc.client = AgoraRTC.createClient({ mode: "rtc",codec: "vp8" });

    // * Listen to new users joining the channel
    this.rtc.client.on('user-published',async (user,mediaType) => {
      console.log('remote user published');
      // Subscribe to a remote user.
      await this.rtc.client.subscribe(user,mediaType);
      console.log('subscribe to remote user success');
      this.callStatus$.next('online');

      // If the subscribed track is video.
      if (mediaType === 'video') {
        // Get `RemoteVideoTrack` in the `user` object.
        const remoteVideoTrack = user.videoTrack;

        // Play the remote video track.
        // Pass the DIV container and the SDK dynamically creates a player in the container for playing the remote video track.
        // remoteVideoTrack.play(playerContainer);

        // Or just pass the ID of the DIV container.
        remoteVideoTrack.play('video-player');
      }

      // If the subscribed track is audio.
      if (mediaType === 'audio') {
        // Get `RemoteAudioTrack` in the `user` object.
        const remoteAudioTrack = user.audioTrack;
        // Play the audio track. No need to pass any DOM element.
        remoteAudioTrack.play();
      }
    });

    // * Listening for users leaving the channel
    this.rtc.client.on('user-unpublished',user => {
      console.log('remote user unpublished');
      this.callStatus$.next('waiting');
    });

    this.rtc.client.on('exception',(event) => console.error('RTC CLIENT ERROR ',event));

    // * Joining the channel
    try {
      // Join channel
      await this.rtc.client.join(agoraConfig.appId,agoraConfig.channel,agoraConfig.token,userId);
      // Create an audio track from the audio sampled by a microphone.
      this.rtc.localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack();
      // Create a video track from the video captured by a camera.
      this.rtc.localVideoTrack = await AgoraRTC.createCameraVideoTrack({ facingMode: 'user' });
      // Publish the local audio and video tracks to the channel.
      // ---------------- THE STATEMENT BELOW IS WHERE IT HANGS ---------------------
      await this.rtc.client.publish([this.rtc.localAudioTrack,this.rtc.localVideoTrack]);
      // ----------------------------------------------------------------------------

      // If peer already connected set status to online otherwise set as waiting
      if (this.rtc.client.remoteUsers.length)
        this.callStatus$.next('online');
      else
        this.callStatus$.next('waiting');

      console.log('self join and publish success !');
    } catch (e) {
      this.callStatus$.error('join-error');
      console.error(e);
    }
  }

它会产生各种错误,并会继续尝试在上面带有注释的语句上重新发布流。以下是导航到该页面然后尝试从我的移动设备加入通话的Web控制台日志:

20:41:29.528 20:41:29:528 Agora-SDK [INFO]: browser compatibility {"getDisplayMedia":false,"getStreamFromExtension":false,"supportUnifiedPlan":true,"supportMinBitrate":false,"supportSetRtpSenderParameters":true,"supportDualStream":true,"webAudioMediaStreamDest":true,"supportReplaceTrack":true,"supportWebGL":true,"webAudioWithAEC":true,"supportRequestFrame":false,"supportShareAudio":false} {"name":"Firefox","version":"80","os":"Android"} AgoraRTC_N-production.js:375:233
20:41:29.831 Angular is running in development mode. Call enableProdMode() to enable production mode. core.js:26833
20:41:33.697 CALLSTATUS connecting video-call.component.ts:25:33
20:41:33.706 20:41:33:706 Agora-SDK [INFO]: [client-d337a] Initializing AgoraRTC client v4.1.0 build: v4.1.0-0-g64d4440(9/4/2020,5:57:23 PM),mode: rtc,codec: vp8 AgoraRTC_N-production.js:375:233
20:41:33.715 20:41:33:715 Agora-SDK [INFO]: [client-d337a] start join channel cataphract-channel AgoraRTC_N-production.js:375:233
20:41:33.719 20:41:33:719 Agora-SDK [INFO]: [client-d337a] connection state change: DISCONNECTED -> CONNECTING AgoraRTC_N-production.js:375:233
20:41:34.450 20:41:34:450 Agora-SDK [DEBUG]: getUserAccount Success h2uR9JUyyUcu3YwywmxrhHguRwJ2 => 1000000001 AgoraRTC_N-production.js:375:113
20:41:34.453 20:41:34:454 Agora-SDK [DEBUG]: [client-d337a] Connect to choose_server: https://webrtc2-ap-web-1.agora.io/api/v1 AgoraRTC_N-production.js:375:113
20:41:34.459 20:41:34:459 Agora-SDK [DEBUG]: [client-d337a] Connect to choose_server: https://webrtc2-ap-web-2.agoraio.cn/api/v1 AgoraRTC_N-production.js:375:113
20:41:35.074 20:41:35:74 Agora-SDK [DEBUG]: [gateway-client-d337a] start connect,url: wss://128-1-77-51.edge.agora.io:5888 AgoraRTC_N-production.js:375:113
20:41:35.395 20:41:35:395 Agora-SDK [DEBUG]: [gateway-client-d337a] websockect opened: wss://128-1-77-51.edge.agora.io:5888 AgoraRTC_N-production.js:375:113
20:41:35.536 20:41:35:536 Agora-SDK [INFO]: [client-d337a] connection state change: CONNECTING -> CONNECTED AgoraRTC_N-production.js:375:233
20:41:35.578 20:41:35:579 Agora-SDK [DEBUG]: [client-d337a] Connected to gateway server AgoraRTC_N-production.js:375:113
20:41:35.589 20:41:35:589 Agora-SDK [INFO]: [client-d337a] Joining channel success: cataphract-channel AgoraRTC_N-production.js:375:233
20:41:35.602 20:41:35:602 Agora-SDK [INFO]: start create microphone audio track with config {} trackId track-34f6a29f AgoraRTC_N-production.js:375:233
20:41:35.608 20:41:35:609 Agora-SDK [DEBUG]: [track-34f6a29f] GetUserMedia {"audio":{}} AgoraRTC_N-production.js:375:113
20:41:38.937 20:41:38:936 Agora-SDK [INFO]: create microphone audio track success,trackId: track-34f6a29f AgoraRTC_N-production.js:375:233
20:41:38.948 20:41:38:948 Agora-SDK [INFO]: start create camera video track with config {"facingMode":"user"} trackId track-5b4971e3 AgoraRTC_N-production.js:375:233
20:41:38.951 20:41:38:951 Agora-SDK [DEBUG]: [track-5b4971e3] GetUserMedia {"video":{"facingMode":"user"}} AgoraRTC_N-production.js:375:113
20:41:40.209 20:41:40:209 Agora-SDK [INFO]: create camera video success,trackId: track-5b4971e3 AgoraRTC_N-production.js:375:233
20:41:40.222 20:41:40:222 Agora-SDK [INFO]: [client-d337a] Publishing tracks,id track-34f6a29f,track-5b4971e3 AgoraRTC_N-production.js:375:233
20:41:40.240 20:41:40:239 Agora-SDK [DEBUG]: [client-d337a] publish high stream AgoraRTC_N-production.js:375:113
20:41:40.249 WebRTC: Using more than two STUN/TURN servers slows down discovery AgoraRTC_N-production.js:705
20:41:40.268 20:41:40:268 Agora-SDK [DEBUG]: [client-d337a-pub-1] add audio track to pc AgoraRTC_N-production.js:375:113
20:41:40.275 20:41:40:275 Agora-SDK [DEBUG]: [client-d337a-pub-1] add video track to pc AgoraRTC_N-production.js:375:113
20:41:40.281 20:41:40:282 Agora-SDK [DEBUG]: [client-d337a-pub-1] set pc rtp sender 
Object { maxBitrate: undefined }
 balanced AgoraRTC_N-production.js:375:113
20:41:40.315 20:41:40:315 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:41:40.471 20:41:40:471 Agora-SDK [DEBUG]: [client-d337a-pub-1] set answer success AgoraRTC_N-production.js:375:113
20:41:40.514 20:41:40:515 Agora-SDK [INFO]: [client-d337a-pub-1] ice-state: pub p2p checking AgoraRTC_N-production.js:375:233
20:41:40.517 20:41:40:518 Agora-SDK [INFO]: [client-d337a-pub-1] connection-state: pub p2p connecting AgoraRTC_N-production.js:375:233
20:41:44.724 20:41:44:724 Agora-SDK [DEBUG]: [client-d337a] receive exception msg,code: 2003,msg: SEND_AUDIO_BITRATE_TOO_LOW,uid: h2uR9JUyyUcu3YwywmxrhHguRwJ2 AgoraRTC_N-production.js:375:113
20:41:44.726
RTC CLIENT ERROR  
Object { code: 2003,msg: "SEND_AUDIO_BITRATE_TOO_LOW",uid: "h2uR9JUyyUcu3YwywmxrhHguRwJ2" }
video-call.service.ts:76:55
20:41:44.734 20:41:44:735 Agora-SDK [DEBUG]: [client-d337a] receive exception msg,code: 1003,msg: SEND_VIDEO_BITRATE_TOO_LOW,uid: h2uR9JUyyUcu3YwywmxrhHguRwJ2 AgoraRTC_N-production.js:375:113
20:41:44.736
RTC CLIENT ERROR  
Object { code: 1003,msg: "SEND_VIDEO_BITRATE_TOO_LOW",uid: "h2uR9JUyyUcu3YwywmxrhHguRwJ2" }
video-call.service.ts:76:55
20:41:45.261 20:41:45:261 Agora-SDK [DEBUG]: [pc-1] onicecandidate timeout,local candidate count 12 AgoraRTC_N-production.js:375:113
20:41:45.538 WebRTC: ICE failed,see about:webrtc for more details
20:41:45.540 20:41:45:540 Agora-SDK [INFO]: [client-d337a-pub-1] ice-state: pub p2p failed AgoraRTC_N-production.js:375:233
20:41:45.555 20:41:45:556 Agora-SDK [DEBUG]: [client-d337a-pub-1] start reconnect pc AgoraRTC_N-production.js:375:113
20:41:45.642 WebRTC: Using more than two STUN/TURN servers slows down discovery AgoraRTC_N-production.js:705
20:41:45.679 20:41:45:679 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:41:45.763 20:41:45:763 Agora-SDK [DEBUG]: [gateway-client-d337a] websocket close wss://128-1-77-51.edge.agora.io:5888/,code: 1006,reason:,current mode: retry AgoraRTC_N-production.js:375:113
20:41:45.768 20:41:45:768 Agora-SDK [INFO]: [client-d337a] connection state change: CONNECTED -> RECONNECTING AgoraRTC_N-production.js:375:233
20:41:45.772 20:41:45:772 Agora-SDK [DEBUG]: [client-d337a] ready to reconnect high stream AgoraRTC_N-production.js:375:113
20:41:45.778 rec retry true AgoraRTC_N-production.js:604:396
20:41:45.783 20:41:45:783 Agora-SDK [DEBUG]: [client-d337a] renewSession D2A8F6FA0344A873B981D670DBC81AEB => F2EEDD3DC589682734C25868E718D468 AgoraRTC_N-production.js:375:113
20:41:45.786 20:41:45:786 Agora-SDK [DEBUG]: [client-d337a] ready to reconnect high stream AgoraRTC_N-production.js:375:113
20:41:45.790 20:41:45:790 Agora-SDK [DEBUG]: [gateway-client-d337a] wait 500ms to reconnect websocket,mode: tryNext AgoraRTC_N-production.js:375:113
20:41:45.794
20:41:45:794 Agora-SDK [ERROR]: AgoraRTCError WS_ABORT: type: publish AgoraRTC_N-production.js:375:450
20:41:46.296 20:41:46:296 Agora-SDK [DEBUG]: [gateway-client-d337a] websocket url length: 3 current index: 1 AgoraRTC_N-production.js:375:113
20:41:46.303 20:41:46:303 Agora-SDK [DEBUG]: [gateway-client-d337a] start connect,url: wss://193-118-58-26.edge.agoraio.cn:5889 AgoraRTC_N-production.js:375:113
20:41:46.823 20:41:46:823 Agora-SDK [DEBUG]: [gateway-client-d337a] websockect opened: wss://193-118-58-26.edge.agoraio.cn:5889 AgoraRTC_N-production.js:375:113
20:41:46.952 20:41:46:953 Agora-SDK [INFO]: [client-d337a] connection state change: RECONNECTING -> CONNECTED AgoraRTC_N-production.js:375:233
20:41:46.957 20:41:46:957 Agora-SDK [DEBUG]: [client-d337a-pub-1] start reconnect pc AgoraRTC_N-production.js:375:113
20:41:46.971 WebRTC: Using more than two STUN/TURN servers slows down discovery 2 AgoraRTC_N-production.js:705
20:41:46.974 WebRTC: Using five or more STUN/TURN servers causes problems AgoraRTC_N-production.js:705
20:41:47.014 20:41:47:15 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:41:47.099 20:41:47:100 Agora-SDK [DEBUG]: [client-d337a-pub-1] set answer success AgoraRTC_N-production.js:375:113
20:41:47.167 20:41:47:167 Agora-SDK [INFO]: [client-d337a-pub-1] ice-state: pub p2p checking AgoraRTC_N-production.js:375:233
20:41:47.171 20:41:47:171 Agora-SDK [INFO]: [client-d337a-pub-1] connection-state: pub p2p connecting AgoraRTC_N-production.js:375:233
20:41:50.651 20:41:50:650 Agora-SDK [DEBUG]: [pc-2] onicecandidate timeout,local candidate count 16 AgoraRTC_N-production.js:375:113
20:41:51.984 20:41:51:984 Agora-SDK [DEBUG]: [pc-3] onicecandidate timeout,local candidate count 14 AgoraRTC_N-production.js:375:113
20:41:57.246 20:41:57:247 Agora-SDK [DEBUG]: [client-d337a] receive p2p lost 
Object { event: "publish",p2pid: 3,uid: "h2uR9JUyyUcu3YwywmxrhHguRwJ2" }
AgoraRTC_N-production.js:375:113
20:41:57.254 20:41:57:254 Agora-SDK [INFO]: [client-d337a-pub-1] pub p2p gateway lost AgoraRTC_N-production.js:375:233
20:41:57.257 20:41:57:258 Agora-SDK [DEBUG]: [client-d337a-pub-1] start reconnect pc AgoraRTC_N-production.js:375:113
20:41:57.376 WebRTC: Using more than two STUN/TURN servers slows down discovery 2 AgoraRTC_N-production.js:705
20:41:57.378 WebRTC: Using five or more STUN/TURN servers causes problems AgoraRTC_N-production.js:705
20:41:57.420 20:41:57:420 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:41:57.591 20:41:57:591 Agora-SDK [DEBUG]: [client-d337a-pub-1] set answer success AgoraRTC_N-production.js:375:113
20:41:57.621 20:41:57:621 Agora-SDK [INFO]: [client-d337a-pub-1] ice-state: pub p2p checking AgoraRTC_N-production.js:375:233
20:41:57.625 20:41:57:625 Agora-SDK [INFO]: [client-d337a-pub-1] connection-state: pub p2p connecting AgoraRTC_N-production.js:375:233
20:42:02.392 20:42:02:393 Agora-SDK [DEBUG]: [pc-4] onicecandidate timeout,local candidate count 14 AgoraRTC_N-production.js:375:113
20:42:07.706 20:42:07:707 Agora-SDK [DEBUG]: [client-d337a] receive p2p lost 
Object { event: "publish",p2pid: 4,uid: "h2uR9JUyyUcu3YwywmxrhHguRwJ2" }
AgoraRTC_N-production.js:375:113
20:42:07.713 20:42:07:714 Agora-SDK [INFO]: [client-d337a-pub-1] pub p2p gateway lost AgoraRTC_N-production.js:375:233
20:42:07.723 20:42:07:723 Agora-SDK [DEBUG]: [client-d337a-pub-1] start reconnect pc AgoraRTC_N-production.js:375:113
20:42:07.797 WebRTC: Using more than two STUN/TURN servers slows down discovery 2 AgoraRTC_N-production.js:705
20:42:07.801 WebRTC: Using five or more STUN/TURN servers causes problems AgoraRTC_N-production.js:705
20:42:07.838 20:42:07:838 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:42:07.930 20:42:07:931 Agora-SDK [DEBUG]: [gateway-client-d337a] websocket close wss://193-118-58-26.edge.agoraio.cn:5889/,current mode: retry AgoraRTC_N-production.js:375:113
20:42:07.935 20:42:07:936 Agora-SDK [INFO]: [client-d337a] connection state change: CONNECTED -> RECONNECTING AgoraRTC_N-production.js:375:233
20:42:07.939 20:42:07:939 Agora-SDK [DEBUG]: [client-d337a] ready to reconnect high stream AgoraRTC_N-production.js:375:113
20:42:07.950 rec retry true AgoraRTC_N-production.js:604:396
20:42:07.954 20:42:07:953 Agora-SDK [DEBUG]: [client-d337a] renewSession F2EEDD3DC589682734C25868E718D468 => 67F0BC1942DB323CB4B8CC15BA8E526A AgoraRTC_N-production.js:375:113
20:42:07.960 20:42:07:961 Agora-SDK [DEBUG]: [client-d337a] ready to reconnect high stream AgoraRTC_N-production.js:375:113
20:42:07.967 20:42:07:968 Agora-SDK [DEBUG]: [gateway-client-d337a] wait 500ms to reconnect websocket,mode: tryNext AgoraRTC_N-production.js:375:113
20:42:07.987
20:42:07:987 Agora-SDK [ERROR]: AgoraRTCError WS_ABORT: type: publish AgoraRTC_N-production.js:375:450
20:42:08.475 20:42:08:475 Agora-SDK [DEBUG]: [gateway-client-d337a] websocket url length: 3 current index: 2 AgoraRTC_N-production.js:375:113
20:42:08.479 20:42:08:479 Agora-SDK [DEBUG]: [gateway-client-d337a] start connect,url: wss://193-118-60-54.edge.agora.io:5891 AgoraRTC_N-production.js:375:113
20:42:08.863 20:42:08:863 Agora-SDK [DEBUG]: [gateway-client-d337a] websockect opened: wss://193-118-60-54.edge.agora.io:5891 AgoraRTC_N-production.js:375:113
20:42:08.985 20:42:08:985 Agora-SDK [INFO]: [client-d337a] connection state change: RECONNECTING -> CONNECTED AgoraRTC_N-production.js:375:233
20:42:08.989 20:42:08:989 Agora-SDK [DEBUG]: [client-d337a-pub-1] start reconnect pc AgoraRTC_N-production.js:375:113
20:42:09.005 WebRTC: Using more than two STUN/TURN servers slows down discovery 2 AgoraRTC_N-production.js:705
20:42:09.007 WebRTC: Using five or more STUN/TURN servers causes problems 3 AgoraRTC_N-production.js:705
20:42:09.047 20:42:09:47 Agora-SDK [DEBUG]: [client-d337a-pub-1] create and set offer success AgoraRTC_N-production.js:375:113
20:42:09.214 20:42:09:214 Agora-SDK [DEBUG]: [client-d337a-pub-1] set answer success AgoraRTC_N-production.js:375:113
20:42:09.274 20:42:09:275 Agora-SDK [INFO]: [client-d337a-pub-1] ice-state: pub p2p checking AgoraRTC_N-production.js:375:233
20:42:09.278 20:42:09:278 Agora-SDK [INFO]: [client-d337a-pub-1] connection-state: pub p2p connecting

如您所见,它在Client.publish timeoutreceive p2p lost之后的pub p2p gateway lost处发布失败。然后,它会无限期地重试start reconnect pc

什么可能导致此行为?

如果需要提供有关此问题的更多信息,请告诉我。

解决方法

可以按照Agora Error FAQs中所述的不同方式解决p2p错误。

Possible solutions for the error

如果故障排除后错误仍然存​​在,请联系support@agora.io。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-