Hi
Jitsi meet installation on local server was configured on BOSH (and was working fine) but we are trying to switch to using Websockets
I followed the guide in this link
But when I try to connect to my jitsi meet room on my local server with websocket configuration
I see “you have been disconnected” error and it counts down and refreshes the page
The NGINX log looks okay
90.210.142.197 - - [09/Feb/2021:11:07:43 +0000] “GET /mytestroom HTTP/1.1” 200 17912 “mydomain” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36”
90.210.142.197 - - [09/Feb/2021:11:07:43 +0000] “GET /images/favicon.ico?v=1 HTTP/1.1” 200 953 “mydomain/mytestroom” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36”
90.210.142.197 - - [09/Feb/2021:11:07:43 +0000] “GET /xmpp-websocket?room=mytestroom HTTP/1.1” 403 284 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36”
90.210.142.197 - - [09/Feb/2021:11:07:46 +0000] “GET /pwa-worker.js HTTP/1.1” 200 1511 “mydomain/pwa-worker.js” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36”
But the log on the browser doesnt
WebSocket connection to ‘wss://mydomain/xmpp-websocket?room=mytestroom’ failed: Error during WebSocket handshake: Unexpected response code: 403
_connect @ strophe.umd.js:5463
connect @ strophe.umd.js:2368
_interceptConnectArgs @ strophe.stream-management.js:228
connect @ XmppConnection.js:248
_connect @ xmpp.js:443
connect @ xmpp.js:515
c.connect @ JitsiConnection.js:61
e @ connection.js:47
(anonymous) @ connection.js:178
d @ connection.js:103
h @ connection.js:208
W @ conference.js:185
createInitialLocalTracksAndConnect @ conference.js:657
init @ conference.js:779
Logger.js:154 2021-02-09T11:11:42.831Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: Strophe: Websocket error [object Event] Script: null Line: null Column: null StackTrace: Error: Strophe: Websocket error [object Event]
at Object.r.Strophe.log (mydomain/libs/lib-jitsi-meet.min.js?v=139:17:16531)
at Object.error (mydomain/libs/lib-jitsi-meet.min.js?v=139:1:23431)
at N.Websocket._onError (mydomain/libs/lib-jitsi-meet.min.js?v=139:1:62905)
o @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:613
window.onerror @ middleware.js:110
callErrorHandler @ GlobalOnErrorHandler.js:61
r.Strophe.log @ strophe.util.js:89
error @ strophe.umd.js:1392
_onError @ strophe.umd.js:5730
error (async)
_connect @ strophe.umd.js:5465
connect @ strophe.umd.js:2368
_interceptConnectArgs @ strophe.stream-management.js:228
connect @ XmppConnection.js:248
_connect @ xmpp.js:443
connect @ xmpp.js:515
c.connect @ JitsiConnection.js:61
e @ connection.js:47
(anonymous) @ connection.js:178
d @ connection.js:103
h @ connection.js:208
W @ conference.js:185
createInitialLocalTracksAndConnect @ conference.js:657
init @ conference.js:779
async function (async)
init @ conference.js:744
(anonymous) @ actions.web.js:31
Promise.then (async)
(anonymous) @ actions.web.js:30
(anonymous) @ index.js:11
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:100
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
_start @ Conference.js:250
componentDidMount @ Conference.js:133
Es @ react-dom.production.min.js:238
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
Ss @ react-dom.production.min.js:230
ps @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
br @ react-dom.production.min.js:114
gr @ react-dom.production.min.js:113
ds @ react-dom.production.min.js:204
enqueueSetState @ react-dom.production.min.js:127
k.setState @ react.production.min.js:13
(anonymous) @ BaseApp.js:241
_navigate @ BaseApp.js:240
(anonymous) @ middleware.js:149
Promise.then (async)
(anonymous) @ middleware.js:149
(anonymous) @ middleware.js:169
(anonymous) @ middleware.js:26
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:147
(anonymous) @ middleware.js:35
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:197
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:443
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:96
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
dispatch @ redux.js:636
(anonymous) @ actions.js:138
async function (async)
(anonymous) @ actions.js:111
(anonymous) @ index.js:11
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:100
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
_openURL @ AbstractApp.js:113
(anonymous) @ AbstractApp.js:47
Promise.then (async)
componentDidMount @ AbstractApp.js:44
Es @ react-dom.production.min.js:238
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
Ss @ react-dom.production.min.js:230
ds @ react-dom.production.min.js:204
Vs @ react-dom.production.min.js:263
Ws @ react-dom.production.min.js:263
(anonymous) @ react-dom.production.min.js:272
ys @ react-dom.production.min.js:208
el @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
Is.renderEntryPoint @ index.web.js:71
(anonymous) @ mytestroom:25
Show 204 more frames
Logger.js:154 2021-02-09T11:11:42.832Z [modules/xmpp/strophe.util.js] <Object.r.Strophe.log>: Strophe: Websocket error [object Event]
o @ Logger.js:154
r.Strophe.log @ strophe.util.js:90
error @ strophe.umd.js:1392
_onError @ strophe.umd.js:5730
error (async)
_connect @ strophe.umd.js:5465
connect @ strophe.umd.js:2368
_interceptConnectArgs @ strophe.stream-management.js:228
connect @ XmppConnection.js:248
_connect @ xmpp.js:443
connect @ xmpp.js:515
c.connect @ JitsiConnection.js:61
e @ connection.js:47
(anonymous) @ connection.js:178
d @ connection.js:103
h @ connection.js:208
W @ conference.js:185
createInitialLocalTracksAndConnect @ conference.js:657
init @ conference.js:779
async function (async)
init @ conference.js:744
(anonymous) @ actions.web.js:31
Promise.then (async)
(anonymous) @ actions.web.js:30
(anonymous) @ index.js:11
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:100
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
_start @ Conference.js:250
componentDidMount @ Conference.js:133
Es @ react-dom.production.min.js:238
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
Ss @ react-dom.production.min.js:230
ps @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
br @ react-dom.production.min.js:114
gr @ react-dom.production.min.js:113
ds @ react-dom.production.min.js:204
enqueueSetState @ react-dom.production.min.js:127
k.setState @ react.production.min.js:13
(anonymous) @ BaseApp.js:241
_navigate @ BaseApp.js:240
(anonymous) @ middleware.js:149
Promise.then (async)
(anonymous) @ middleware.js:149
(anonymous) @ middleware.js:169
(anonymous) @ middleware.js:26
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:147
(anonymous) @ middleware.js:35
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:197
(anonymous) @ middleware.js:45
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:443
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:96
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
dispatch @ redux.js:636
(anonymous) @ actions.js:138
async function (async)
(anonymous) @ actions.js:111
(anonymous) @ index.js:11
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:32
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:34
(anonymous) @ middleware.any.js:22
(anonymous) @ middleware.js:67
(anonymous) @ middleware.js:43
(anonymous) @ middleware.js:61
(anonymous) @ middleware.js:79
(anonymous) @ middleware.js:71
(anonymous) @ middleware.js:77
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:38
(anonymous) @ middleware.js:33
(anonymous) @ middleware.web.js:24
(anonymous) @ middleware.any.js:93
(anonymous) @ middleware.js:77
(anonymous) @ middleware.web.js:21
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:110
(anonymous) @ middleware.js:16
(anonymous) @ middleware.js:36
(anonymous) @ middleware.js:33
(anonymous) @ middleware.js:178
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:26
(anonymous) @ middleware.web.js:20
(anonymous) @ middleware.js:42
(anonymous) @ middleware.js:148
(anonymous) @ middleware.js:21
(anonymous) @ middleware.js:60
(anonymous) @ middleware.js:44
(anonymous) @ middleware.js:49
(anonymous) @ middleware.js:28
(anonymous) @ middleware.js:12
(anonymous) @ middleware.js:39
(anonymous) @ middleware.js:31
(anonymous) @ middleware.web.js:22
(anonymous) @ middleware.any.js:100
(anonymous) @ middleware.js:106
(anonymous) @ middleware.js:19
(anonymous) @ middleware.js:29
(anonymous) @ middleware.js:91
(anonymous) @ middleware.js:101
(anonymous) @ middleware.js:24
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:15
(anonymous) @ middleware.js:23
(anonymous) @ middleware.js:20
(anonymous) @ middleware.js:25
(anonymous) @ middleware.js:74
(anonymous) @ middleware.js:40
(anonymous) @ middleware.js:158
_openURL @ AbstractApp.js:113
(anonymous) @ AbstractApp.js:47
Promise.then (async)
componentDidMount @ AbstractApp.js:44
Es @ react-dom.production.min.js:238
t.unstable_runWithPriority @ scheduler.production.min.js:20
mr @ react-dom.production.min.js:113
Ss @ react-dom.production.min.js:230
ds @ react-dom.production.min.js:204
Vs @ react-dom.production.min.js:263
Ws @ react-dom.production.min.js:263
(anonymous) @ react-dom.production.min.js:272
ys @ react-dom.production.min.js:208
el @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
Is.renderEntryPoint @ index.web.js:71
(anonymous) @ mytestroom:25
Show 201 more frames
Logger.js:154 2021-02-09T11:11:42.833Z [modules/xmpp/xmpp.js] <I.connectionHandler>: (TIME) Strophe connfail[The WebSocket connection could not be established or was disconnected.]: 2112.414999981411
If I disable websocket URL on mydomain-config.js, then it works but this is presumably due to jitsi meet being forced to go via BOSH
Any help is appreciated.
Thanks