Zoom-sdk работает локально, но не при развертывании

Я использую api, jwt и websdk масштабирования, чтобы создать встречу при нажатии кнопки, затем присоединиться к ней в качестве организатора и одновременно начать встречу, позволяя другим присоединиться. Локально это работает нормально, но каким-то образом при развертывании в Cloudflare я получаю следующую ошибку:

Время соединения истекло, и вы не можете присоединиться к собранию. Проверьте подключение к сети и попробуйте еще раз.

Объект ошибки:

      errorCode: 3706
errorMessage: undefined
method: "join"
result: "The meeting number is wrong."
status: false

«Номер встречи неправильный». очевидно, здесь неверное сообщение, поскольку предоставленный номер встречи поступает напрямую из api масштабирования и работает локально.

      const joinMeeting = async (meetConfig: MeetConfigData) => {
    const ZoomMtg = require("@zoomus/websdk").ZoomMtg;
    ZoomMtg.setZoomJSLib("https://source.zoom.us/1.9.0/lib", "/av");
    ZoomMtg.preLoadWasm();
    ZoomMtg.prepareJssdk();

    const signature = await generateSignature(meetConfig.role, meetConfig.meetingNumber);

    ZoomMtg.init({
        leaveUrl: meetConfig.leaveUrl,
        isSupportAV: true,
        success: () => {
            ZoomMtg.join({
                signature,
                apiKey: "API_KEY",
                meetingNumber: meetConfig.meetingNumber,
                userName: meetConfig.userName,
                passWord: meetConfig.password,
                success: () => {
                    console.log("Successfully hosted or joined meeting.");
                },
                error: (err: Error) => {
                    console.log("Error: ", err);
                },
            });
        },
        error: (err: Error) => {
            console.log("Error: ", err);
        },
    });
};

Серверный метод подписи, который возвращает правильную подпись, поскольку, опять же, он работает локально:

      export const createSignature = ({ role, meetingNumber }) => {
    const timestamp = new Date().getTime() - 30000;
    const msg = Buffer.from(
        process.env.NEXT_PUBLIC_ZOOM_API_KEY + meetingNumber + timestamp + role
    ).toString("base64");
    const hash = crypto
        .createHmac("sha256", process.env.NEXT_PUBLIC_ZOOM_API_SECRET)
        .update(msg)
        .digest("base64");

    return Buffer.from(
        `${process.env.NEXT_PUBLIC_ZOOM_API_KEY}.${meetingNumber}.${timestamp}.${role}.${hash}`
    ).toString("base64");
};

Кто-нибудь когда-нибудь испытывал такое?

1 ответ

если вы получаете эту ошибку (получение сообщения «Время ожидания вашего подключения истекло, и вы не можете присоединиться к собранию» при присоединении к собранию, которое еще не началось), необходимо что-то сделать

Ищите в своем проекте

      <script src="https://source.zoom.us/zoom-meeting-1.7.8.min.js"></script>
and replace with 

<script src="https://source.zoom.us/zoom-meeting-2.1.1.min.js"></script>

1 После этого ошибка исчезнет 2

Другие вопросы по тегам