Bigbluebutton setup html5 dev client login to meeting with join api call empty html response

时间秒杀一切 提交于 2019-12-11 08:28:36

问题


We were looking to setup a new html5 client for big blue button to test out its specifications for evaluation & testing.

We started out by following the bigbluebutton 1.0 install document along with replacing the current package repository to bigbluebutton-2 as mentioned in docs, followed by api demos, html5 client installation & html5 dev client installation on an Ubuntu 16.05 linux vm running on google cloud compute vm.

To run the meteor bundle we used pm2-meteor & pm2-meteor results in success.

The installation of bigbluebutton-2.0 core, dev was both successfull & this is the client check status we got -

Except the sip connections, since it is showing success for all the components we thought everything should work as expected now. So, when trying the bigbluebutton-api with the secrets from bbb-conf on a

https://server_domain/html5client/check returns

{"html5clientStatus":"running"}

pm2-meteor logs show nothing on this check request, but when I load - https://server_domain/html5client

I get "unauthorized" response & this in the logs -

0|bigblueb | error: CLIENT LOG: [object Object]
0|bigblueb |  language=en-US, userAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36, width=1366, height=768, width=1366, height=637, bbbVersion=2.0-rc, location=http://livetuitions.urtutors.com/html5client, meetingId=null, requesterUserId=null, requesterToken=null, logoutURL=null, sessionToken=null

So, I figure that meteor is working correctly, not sure about from where html5client/check api is running so I checked

sudo service bbb-html5 status

● bbb-html5.service - BigBlueButton HTML5 service
   Loaded: loaded (/usr/lib/systemd/system/bbb-html5.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2018-03-14 07:40:29 UTC; 31min ago
  Process: 18077 ExecStart=/usr/share/meteor/bundle/systemd_start.sh (code=exited, status=1/FAILURE)
 Main PID: 18077 (code=exited, status=1/FAILURE)

Mar 14 07:40:28 online-teaching-prod systemd_start.sh[18077]: MongoDB shell version v3.6.3
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: connecting to: mongodb://127.0.0.1:27017/html5client
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: 2018-03-14T07:40:29.094+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll),
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: 2018-03-14T07:40:29.095+0000 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: connect@src/mongo/shell/mongo.js:251:13
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: @(connect):1:6
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: exception: connect failed
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Main process exited, code=exited, status=1/FAILURE
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Unit entered failed state.
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Failed with result 'exit-code'.

So, I figured my mongodb is not getting connected on localhost so I tried -

sudo service mongod status
mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/mongod.service.d
           └─override.conf
   Active: active (running) since Wed 2018-03-14 07:40:20 UTC; 32min ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 17571 (mongod)

So, it was running & running mongo opens the mongo shell too, so no issues there I believe.

But anyway my since my dev env html5 setup is overriding this service so, now I thought that may be meteor is also not able to connect to mongodb so to test it I tried to run use the

http://mconf.github.io/bigbluebutton-api-js/

create meeting call with my secret & api url. the create meetings response was successful.

So, that means meteor is able to connect to mognodb but not the html5client.

So, to test the default installation I tried the join as presenter, attendee from the api-js generated urls.

The flash client loaded successfully & I am able to use all components in the flash version.

So, to test the html5client in a similar fashion -

1) I tried to use the existing session token I had in my flash client & opened -

https://livetuitions.urtutors.com/html5client/join?sessionToken=j2h4lllp5hmpthaw

Now, I it redirected my browser to https://livetutions.urtutors.com/html5client/ but shows nothing in screen (so I guess there could be an issue with the layout settings app) or html5client is being redirected to incorrect endpoint / params or an ssl certificate issue.

To rule out the ssl certificate issue, i tried to run -

https://www.ssllabs.com/ssltest/analyze.html?d=livetuitions.urtutors.com&latest

which resulted in A rating, so i guess certs are not an issue here.

Although, when we followed the lets encrypt setup section in setup documentation we generated the certs with this following command -

letsencrypt --webroot -w /var/www/bigbluebutton-default/ -d livetuitions.urtutors.com certonly

so, I suspect that they were generated for the default bbb-demos nginx root directory & not for the html5 dev version I am using.

Or it can be that my meteor dev server instance (~/dev/bigbluebutton/bigbluebutton-html5) is deployed / configured incorrectly.

Anyways, I am not sure about the reason as to why I am seeing empty html in browser after joining html5client so after checking the pm2 logs after hitting the join & attend meeting call from apimate I got -

0|bigblueb |  ~~~~ REDIS RECEIVED: UserRegisteredRespMsg  {"envelope":{"name":"UserRegisteredRespMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"UserRegisteredRespMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881"},"body":{"meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu","name":"User 9802715","role":"VIEWER"}}}
0|bigblueb | info: User 'w_kg5xefvekhtu' is trying to validate auth token for meeting 'e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881'
0|bigblueb |  ~~~~ REDIS PUBLISHING:  {"envelope":{"name":"ValidateAuthTokenReqMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"ValidateAuthTokenReqMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab"}}}
0|bigblueb | info: Created dummy user id=w_kg5xefvekhtu token=g0xl4bx2zvab meeting=e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881
0|bigblueb |  ~~~~ REDIS RECEIVED: ValidateAuthTokenRespMsg  {"envelope":{"name":"ValidateAuthTokenRespMsg","routing":{"msgType":"DIRECT","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"}},"core":{"header":{"name":"ValidateAuthTokenRespMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab","valid":true,"waitForApproval":false}}}
0|bigblueb | info: User 'w_kg5xefvekhtu' is joining meeting 'e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881'
0|bigblueb |  ~~~~ REDIS PUBLISHING:  {"envelope":{"name":"UserJoinMeetingReqMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"UserJoinMeetingReqMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab"}}}
0|bigblueb | info: Removing system messages from: (w_kg5xefvekhtu)
0|bigblueb |  ~~~~ REDIS RECEIVED: UserJoinedMeetingEvtMsg  {"envelope":{"name":"UserJoinedMeetingEvtMsg","routing":{"msgType":"BROADCAST_TO_MEETING","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"}},"core":{"header":{"name":"UserJoinedMeetingEvtMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"intId":"w_kg5xefvekhtu","extId":"w_kg5xefvekhtu","name":"User 9802715","role":"VIEWER","guest":false,"authed":false,"waitingForAcceptance":false,"emoji":"none","presenter":false,"locked":true,"avatar":"https://livetuitions.urtutors.com/client/avatar.png"}}}
0|bigblueb | info: Validated auth token as true user=w_kg5xefvekhtu meeting=e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881
0|bigblueb | info: Added chat from= to=SYSTEM_MESSAGE time=1521015968383

which suggests that adding user was success, & this is the response I get in the browser -

which suggests expected response from all the three calls - "enter", "info", "_timesync".

So i tried to load the same token with flash client & it works like a charm -

https://livetuitions.urtutors.com/client/BigBlueButton.html?sessionToken=3b1pfrn4l8hdyr4d

Can anyone here help me find / debug / fix this issue or what additional information can I provide that could help in possibly identifying / debugging / fixing the issue, so that I can load & test bigbluebutton's html5client

----------------Switched to Default Bigbluebutton-HTML5----------

So, when the dev screenshare module was not working I tried to stop the meteor app & restarted the bbb-html5 service. which resulted in success. so I thought everything should work now & voila, things worked (well mostly).

I read in a changelog that html5 now supported screenshare too, but It wasn't working with the default html5 client I installed with (sudo apt-get install bbb-html5) [I guess that is because of the certificate / ssl issue posted here at - https://stackoverflow.com/questions/49303377/how-to-use-letsencrypt-nginx-certificates-for-ant-sign-jar-to-sign-screenshare-e] .

So, couple of issues that I found here were 1) Audio kept disconnecting. Had to go through echo test again & again. [I tried to change /var/www/bigbluebutton/client/conf/config.xml to enable skip audio check from config but not effect after conf restart] 2) Video kept disconnecting with this message in the console on interaction with chat, other screen elements -

21:09:58.876 User shared webcam w_4eawbbe3zwxu
21:10:06.979 CLIENT LOG (ERROR):  Camera share has not suceeded in 10000
21:10:06.981 CLIENT LOG (INFO):  Unsharing webcam
21:10:06.981 User unshared webcam w_4eawbbe3zwxu
21:10:07.262 Sending message: {"type":"video","role":"share","id":"stop","cameraId":"w_4eawbbe3zwxu"}
21:10:07.263 CLIENT LOG (INFO):  Stopping WebRTC peer
21:10:07.263 Disposing WebRtcPeer
21:10:07.269 Disposing WebRtcPeer

3) Screenshare also is not working.

Can anyone can help in fixing / finding possible issues in any of these 3 components.

Hi,

So, as per @Fred's suggestion to test out things with the new automated build script for bigbluebutton.

It ran successfully on a new Ubuntu 16.04 VM running on GCE with 8GB of ram. So to check systems status I tried to load the bigbluebutton client again in my browser, I found all systems were operational.

[PS I had to install bbb-check package from Ubuntu ppa to access its web ui, so guessing it is still not a part of the bbb-install.sh script.]

Also, after checking the client status I found that bigbluebutton was not using ssl. So I am guessing again this is still not a part of bbb-install.sh. But, if it is as you mentioned in the answer below then there might be an issue / bug here.

Also, the configuration files that get reloaded after a bbb-conf restart are shown as -

So, I am guessing dev env setup is also not a part of the build script. Anyways, to test the html5client I tried to install it & check bbb-html5 service status.

So, to install html5 we needed node, meteor, mongodb, etc. which were unavailable so I am guessing bbb-install.sh might not be handling these,

Also, for some reason upon installing mongodb on my ubuntu with apt (mongodb-org) mongod service wasn't getting created. So, I was looking for an alternative option to pass env variables like MONGO_URL to the bbb-conf as part of bigbluebutton config / properties. But i did not find one. Although, I saw such an option while setting up my dev environment with bbb-html5 while using pm2-meteor, which used dev env variables like nodeenv, mongourl, etc. to pass to the bbb html5 meteor server, so not sure how it is handled within the bbb-install.sh script or how do i pass these variables to the bbb-conf for all operations like restart, check, start, stop, etc. [because this would be required ultimately for us, as we would want to keep the database distributed & separate from the machine handling the bbb-client for scaling purposes.

Anyways, so I created the service manually & started it to test stuff. Then i tried to start the bbb-html5 service with -

sudo service bbb-html5 start

it fails to start with errors shown as below -

kladdha_bhl68@online-teaching-dev-classroom:~$ sudo /usr/share/meteor/bundle/systemd_start.sh
cat: programs/server/assets/app/config/settings-production.json: No such file or directory
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017/html5client
MongoDB server version: 3.6.3
{ "dropped" : "html5client", "ok" : 1 }
/usr/share/meteor/bundle/programs/server/node_modules/fibers/future.js:280
                                                throw(ex);
                                                ^

TypeError: Object.getOwnPropertyDescriptors is not a function
    at insert (packages/mongo/collection.js:435:12)
    at updateVersions (packages/autoupdate.js:125:20)
    at packages/autoupdate.js:189:3
    at Function.time (/usr/share/meteor/bundle/programs/server/profile.js:309:28)
    at /usr/share/meteor/bundle/programs/server/boot.js:423:13
    at /usr/share/meteor/bundle/programs/server/boot.js:464:5
    at Function.run (/usr/share/meteor/bundle/programs/server/profile.js:510:12)
    at /usr/share/meteor/bundle/programs/server/boot.js:462:11

So I am guessing it is not able to find the meteor deploy conf. (settings-production.json)

So, to find it I tried (sudo find / -iname "settings-") but got no results. So, I am guessing this was not generated as part of bbb-install.sh either. Now, I am thinking whether to create & configure those settings again & test this install script or go back to my original setup & debug that error so as to proceed forward at the earliest.

Can anyone suggest anything that might help.


回答1:


Very detailed post -- you know your way around BigBlueButton. Are you setting up on a VM? Can you setup a new Ubuntu 16.04 64-bit VM and install a fresh copy using the newly released bbb-install.sh script, see

https://github.com/bigbluebutton/bbb-install

This should get you going with BigBlueButton 2.0-beta + SSL + HTML5. If it works, you can then can compare the above to the working server and, very likely, quickly locate the issue on your server.

Try the above and let us know if that gets you going.



来源:https://stackoverflow.com/questions/49275490/bigbluebutton-setup-html5-dev-client-login-to-meeting-with-join-api-call-empty-h

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!