đŸ–„ Agora Video Conferencing (WebRTC) and Streaming with Cloud Recording - New Plugin from Zeroqode

Your option "AgoraRTC A’s Number of users works well because I have used it as a “condition” in the display of a group "Only when “AgoraRTC A’s Number of users greater than 2” display the group, and it works very well.

Do you know why it doesn’t work at all when I set this as a condition in the toolbox plug-in (a plugin that lets you insert javascript code) to, for example, modify the dimensions of certain groups dynamically, in my case for a number of seconds?
Thanks again for your precious help and your patience.

Hi @elarchi75
Looking at your workflow screenshot 

Step 3 Join AgoraRTC Admin
Step 8 Run JS (only when)
Step 9 Run JS (only when)

Does Step 3 set a value, that is checked in Step 8’s (only when) expression? Is this where the problem is?

I think the underlying issue is that Bubble’s workflow optimiser does not wait for the new value caused by Step 3, when it runs Step 8’s condition. Instead it uses AgoraRTC Admin’s value as it was when the workflow started.

This is because the workflow sees no link between running Step 3, and the element’s value. A limitation shared by all community plugins.

Note that looking at the value with the page debugger is misleading, as the debugger does not follow the same logic as the workflow optimiser.

To fix this, Step 8 and following needs to be on a “separate workflow”, ideally one triggered by Step 3, or if that isn’t possible, started with “Schedule a custom event”. When this separate workflow starts, it picks the current value of the RTC element.

So this will look like:

Workflow A: Steps 1 to 7
AgoraRTC Admin’s trigger event: Workflow B: Steps 8, 9, etc

or

Workflow A: Steps 1 to 7, new Step 8: schedule custom event
custom event’s workflow B: Steps 8, 9, etc

A similar situation and workaround is described on this Toolbox FAQ

Hi @mishav,

We sincerely appreciate you sharing this valuable information. Your input is highly valued. :pray:

@elarchi75, as we suspected earlier, it seems that the issue does not stem from our end, but is likely related to how the workflows are triggered. In case you have any other questions, you know where to find us :slight_smile:

Wishing all of you a wonderful start to the weekend :hugs:

Hello @mishav and @ZeroqodeSupport

Thank you very much for your help. I have done what you advised and it works, but I have another problem.
The JavaScript executes what I ask when a button is clicked but when a new user arrives in the room or leaves the room the JavaScript doesn’t detect this automatically, so the user would have to click the button again for the JavaScript to take this into account and this is a grey problem, I’d like the JavaScript worflow to adapt automatically according to the number of users who connect.

Happy New year

Hello @elarchi75,

I’m pleased to hear that the behavior of your Bubble app is meeting your expectations.

For your app to automatically adjust the JavaScript workflow based on the changing number of users in Agora (either connecting or disconnecting), you would need to implement event listeners that react to these user join/leave events, as provided by the Agora SDK.

Here’s a structured approach to incorporate this:

  1. Implement Agora Event Listeners: Utilize the Agora SDK’s event listeners that are designed to detect when a user joins or leaves a channel. These can serve as triggers for your custom JavaScript functions.

  2. Refine Your JavaScript Logic: Adapt your existing JavaScript so that it responds not only to button clicks but also to the Agora event listeners. This modification will allow your code to automatically activate whenever a user joins or leaves the session.

  3. Seamless Integration with Bubble: Make sure your JavaScript is seamlessly integrated with your Bubble app. This might involve using Bubble’s “Run JavaScript” action within workflows that get activated by Agora’s user events.

Here’s a basic code snippet to give you an idea of how to set this up:

// Assuming Agora client initialization
const client = AgoraRTC.createClient({ mode: "live", codec: "vp8" });

// Event listener for user joining
client.on("user-published", async (user, mediaType) => {
  // Custom JavaScript for handling user join
});

// Event listener for user leaving
client.on("user-unpublished", user => {
  // Custom JavaScript for handling user leave
});

Keep in mind, this is a general guideline and the actual implementation might vary based on your specific requirements. It’s important to conduct thorough tests on your side and make any necessary adjustments.

For any plugin-related queries or issues, please feel free to reach out to us at support@zeroqode.com or on this forum.

Wishing you success and a Happy New Year! :tada::hugs:

Thank you very much m’y friends.
:pray::pray::pray:

What is an event listener? Is it lines of JS code in the Toolboox editor, is it a feature in Bubble or a plugin
? Could you please tell me more and help me set it up?

Hey @elarchi75,

I understand your request, but I want to clarify that our scope of support does not extend to setting up plugins for our users. The previous message I shared was intended as general guidance for your specific use case. If you’re in search of a Bubble Developer who can assist you in setting up your page to meet your requirements, I recommend checking the Help section of the Bubble forum, where you may find developers available to assist you.

Regarding the Toolbox plugin, it adds a “Run JavaScript” action that executes the JavaScript code you provide. In your case, since you’re using a JavaScript code snippet and we provided you with a simple example of event listeners that track user join and leave events, you can add conditions to the workflow that runs your JavaScript code to ensure it triggers only when a certain number of users are connected to the room, as we explained earlier.

I recommend reviewing the documentation for both Agora and our plugin for further insights. If you encounter any issues or notice unexpected behavior with our plugin, please feel free to return to us for assistance.

Wishing you a productive and successful day ahead! :hugs:

Hello,
I have another question.
I’d like to be able to click on each person connected in the room but as they’re all in one group I can’t, when I click it clicks on the whole group.

Is there a trick so that each person connected during the videoconference is in a different group so that you can click on each person individually or even place one of the people at the top left of the screen and another at the bottom right of the screen.

I’m sure this is possible with a trick but I don’t know, I’m not an expert.

Thank you for your help. :pray:

1 Like

Hello @elarchi75,

We have discussed this with the developers, and unfortunately, there are no tricks to achieve this functionality. We are utilizing the features provided by Agora, and this specific functionality is not available through their services.

I’m sorry that we couldn’t provide a solution for this particular request. If you have any other questions or need further assistance, please feel free to reach out.

Cheers :hugs:

Hello,
I’ve been unable to connect to Agora via videoconference since January 27, 01:53 pm. Do you know why? I haven’t touched any settings.

Hello @elarchi75,

There haven’t been any recent changes to our Agora plugin.

The issue you’re encountering might be related to your package’s resource usage. It’s possible that your app has exhausted the resources provided by your current package, could you please verify this.

Additionally, could you please check your browser console while attempting to connect to a conference? Any error messages that appear there could provide valuable clues about the source of this issue.

Wishing you a productive day! :hugs:

Hello,

here’s what I found in the debugger, I don’t see anything weird. Furthermore, my computer asks me if I authorize the fitandview test version site (my site) to use my camera.



Hi @elarchi75,

We’ve conducted tests with the plugin on Safari Browser and found that it functions as expected. It’s normal for the plugin to request permission to use the camera and microphone.

To assist us in diagnosing the issue you’re experiencing, could you please check your browser console for any errors or warnings? Any information there could be crucial in pinpointing the problem.

Best regards :hibiscus:

Thanks for your help, this is what I found on the console:


I’ve just realized that I made a mistake when creating the room’s unique id. I put in 100 characters, changed it to 30 and it works, but it worked perfectly before last Saturday morning with 100 characters.
So what do you recommend in terms of number of characters and will what I’ve done make sure that no group of users will have the same character by chance, because of course I don’t want strangers to find themselves in the same group as others.
Thank you

Translated with DeepL.com (free version)

Hi @elarchi75,

I’m pleased to know that the issue has been addressed.

For further details on Agora, please refer to the Agora API documentation by clicking here. You’ll find information on the maximum length for the “Room Name” field in the parameters section for “channel.”

As an idea, consider saving the room name when a user initiates a conference. Then, for subsequent conferences, implement a check to ensure the same room name isn’t reused; if it is, generate a new string. It’s important to remove the room name from wherever it’s stored once all participants have left the conference to avoid retaining inactive room names. Please note, this approach is a suggestion and has not been specifically tested.

Best regards :hugs:

Hello, thank you for your help.
I’ve decided to use a single id for each room creation, is this a good thing in your opinion?

Hi @elarchi75,

Could you clarify what you’re referring to with “single id”?

Best regards, :hugs:

This creates a unique id in the session room name created by the user. Because Bubble creates unique identifiers, no other user will be able to create the same unique id as another user, so every room will have a different id, right?


Capture d’écran 2024-02-02 à 18.50.22