Logs
Live application output
Application Log
2026/05/30 21:44:00 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/30 21:44:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/30 21:44:08 manager.go:243: [chromecast] sending Load to athan (192.168.86.188:32068) url=http://192.168.86.5:28427/media/media_Athan.mp3 2026/05/30 21:44:08 manager.go:249: [chromecast] Load command accepted by athan 2026/05/30 21:44:09 server.go:101: [media] serving embedded file: media_Athan.mp3 2026/05/30 23:16:00 scheduler.go:264: [scheduler] firing Isha Athan 2026/05/30 23:16:00 manager.go:147: [chromecast] PlayAthan: prayer=Isha file=media_Athan.mp3 full_url=http://192.168.86.5:28427/media/media_Athan.mp3 2026/05/30 23:16:00 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/30 23:16:00 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/30 23:16:00 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32102 2026/05/30 23:16:00 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/30 23:16:00 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32068 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/30 23:16:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/30 23:16:11 manager.go:302: [chromecast] connect attempt 1/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/30 23:16:16 manager.go:302: [chromecast] connect attempt 2/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/30 23:16:21 manager.go:302: [chromecast] connect attempt 3/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/30 23:16:23 main.go:170: [main] speaker athan (Isha): connect to athan: failed to connect after 3 attempts 2026/05/31 01:00:00 scheduler.go:89: [scheduler] daily refresh triggered 2026/05/31 01:00:05 timesync.go:93: [timesync] synced via NTP server pool.ntp.org: 2026-05-31T01:00:05+01:00 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Pre-Fajr Quran at 02:33 (in 93 min) 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Fajr Athan at 03:03 (in 123 min) 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Dhuhr Athan at 13:27 (in 747 min) 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Asr Athan at 17:49 (in 1009 min) 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Maghrib Athan at 21:45 (in 1245 min) 2026/05/31 01:00:05 scheduler.go:274: [scheduler] scheduled Isha Athan at 23:16 (in 1336 min) 2026/05/31 02:33:00 scheduler.go:264: [scheduler] firing Pre-Fajr Quran 2026/05/31 02:33:00 controller.go:48: [quran] starting speaker stream (dur=30m0s) 2026/05/31 02:33:00 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 02:33:00 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/31 02:33:00 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32102 2026/05/31 02:33:00 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 02:33:00 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32068 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 02:33:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 02:33:11 manager.go:302: [chromecast] connect attempt 1/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 02:33:16 manager.go:302: [chromecast] connect attempt 2/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 02:33:21 manager.go:302: [chromecast] connect attempt 3/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 02:33:23 controller.go:52: [quran] speaker stream error: connect to athan: failed to connect after 3 attempts 2026/05/31 03:03:00 scheduler.go:264: [scheduler] firing Fajr Athan 2026/05/31 03:03:00 manager.go:147: [chromecast] PlayAthan: prayer=Fajr file=media_adhan_al_fajr.mp3 full_url=http://192.168.86.5:28427/media/media_adhan_al_fajr.mp3 2026/05/31 03:03:00 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 03:03:00 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/31 03:03:00 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32102 2026/05/31 03:03:00 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 03:03:00 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32068 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 03:03:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 03:03:11 manager.go:302: [chromecast] connect attempt 1/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 03:03:16 manager.go:302: [chromecast] connect attempt 2/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 03:03:21 manager.go:302: [chromecast] connect attempt 3/3 failed: unable to connect to chromecast at '192.168.86.188:32068': dial tcp 192.168.86.188:32068: i/o timeout 2026/05/31 03:03:23 main.go:170: [main] speaker athan (Fajr): connect to athan: failed to connect after 3 attempts 2026/05/31 03:58:37 server.go:308: [web/ws] client connected from 127.0.0.1:37516 2026/05/31 03:58:41 server.go:314: [web/ws] client disconnected from 127.0.0.1:37516 2026/05/31 09:54:56 server.go:308: [web/ws] client connected from 127.0.0.1:36926 2026/05/31 09:54:58 server.go:314: [web/ws] client disconnected from 127.0.0.1:36926 2026/05/31 09:54:58 server.go:308: [web/ws] client connected from 127.0.0.1:59460 2026/05/31 09:57:17 server.go:308: [web/ws] client connected from 127.0.0.1:51522 2026/05/31 09:57:21 server.go:314: [web/ws] client disconnected from 127.0.0.1:51522 2026/05/31 09:57:52 main.go:90: === Automated Azan Agent starting === 2026/05/31 09:57:57 timesync.go:93: [timesync] synced via NTP server pool.ntp.org: 2026-05-31T09:57:57+01:00 2026/05/31 09:57:57 main.go:104: [main] config dir: /root/.config/azan-agent 2026/05/31 09:57:57 main.go:105: [main] data dir: /root/.local/share/azan-agent 2026/05/31 09:57:57 main.go:106: [main] log dir: /root/.local/share/azan-agent/logs 2026/05/31 09:57:57 main.go:107: [main] media dir: /app/Media 2026/05/31 09:57:57 main.go:111: [main] WARNING: media dir not found (/app/Media): open /app/Media: no such file or directory — Chromecast playback will fail 2026/05/31 09:57:57 main.go:132: [main] media server: http://192.168.86.5:28427/media/ 2026/05/31 09:57:57 main.go:138: [main] chromecast media base URL: http://192.168.86.5:28427/media/ 2026/05/31 09:57:57 server.go:53: [media] serving /app/Media on 0.0.0.0:28427 (embedded fallback enabled) 2026/05/31 09:57:57 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 09:57:57 scheduler.go:254: [scheduler] skipping Pre-Fajr Quran at 02:33 (past) 2026/05/31 09:57:57 scheduler.go:254: [scheduler] skipping Fajr Athan at 03:03 (past) 2026/05/31 09:57:57 scheduler.go:274: [scheduler] scheduled Dhuhr Athan at 13:27 (in 209 min) 2026/05/31 09:57:57 scheduler.go:274: [scheduler] scheduled Asr Athan at 17:49 (in 471 min) 2026/05/31 09:57:57 scheduler.go:274: [scheduler] scheduled Maghrib Athan at 21:45 (in 707 min) 2026/05/31 09:57:57 scheduler.go:274: [scheduler] scheduled Isha Athan at 23:16 (in 798 min) 2026/05/31 09:57:57 scheduler.go:95: [scheduler] started 2026/05/31 09:57:57 main.go:243: [main] dashboard at http://localhost:28426 2026/05/31 09:57:57 server.go:171: [web] dashboard at http://localhost:28426 2026/05/31 09:57:57 watcher.go:60: [config-watcher] watching /config/azan.toml 2026/05/31 09:57:57 main.go:271: [main] prayer times for naas on 2026-05-31: 2026/05/31 09:57:57 main.go:272: Fajr=03:03 Dhuhr=13:27 Asr=17:49 Maghrib=21:45 Isha=23:16 2026/05/31 09:57:57 main.go:277: [main] next prayer: Dhuhr at 13:27 2026/05/31 09:57:57 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 09:57:57 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/31 09:57:57 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/31 09:57:57 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/31 09:57:57 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/31 09:57:57 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 09:57:58 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 09:57:58 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32101 2026/05/31 09:57:58 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32067 2026/05/31 09:57:58 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 09:58:05 server.go:308: [web/ws] client connected from 127.0.0.1:45002 2026/05/31 09:58:05 main.go:147: [main] found 10 chromecast device(s) 2026/05/31 10:04:03 server.go:314: [web/ws] client disconnected from 127.0.0.1:45002 2026/05/31 10:04:03 server.go:308: [web/ws] client connected from 127.0.0.1:58940 2026/05/31 10:07:33 server.go:308: [web/ws] client connected from 127.0.0.1:39080 2026/05/31 10:07:58 server.go:314: [web/ws] client disconnected from 127.0.0.1:58940 2026/05/31 10:07:58 server.go:314: [web/ws] client disconnected from 127.0.0.1:39080 2026/05/31 10:08:12 server.go:308: [web/ws] client connected from 127.0.0.1:33756 2026/05/31 10:11:30 server.go:314: [web/ws] client disconnected from 127.0.0.1:33756 2026/05/31 10:11:30 server.go:308: [web/ws] client connected from 127.0.0.1:54176 2026/05/31 10:11:50 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 10:11:50 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 10:11:50 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/31 10:11:50 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/31 10:11:50 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/31 10:11:50 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/31 10:11:51 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 10:11:51 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 10:11:51 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32101 2026/05/31 10:11:51 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32067 2026/05/31 10:11:51 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 10:13:21 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 10:13:21 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Playroom Speaker (Google Nest Mini) at 192.168.86.234:8009 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Kitchen speaker (Google Nest Mini) at 192.168.86.148:8009 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Downstairs (Google Cast Group) at 192.168.86.148:32081 2026/05/31 10:13:21 manager.go:96: [chromecast] found: All Nest minis (Google Cast Group) at 192.168.86.148:32124 2026/05/31 10:13:21 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32101 2026/05/31 10:13:21 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32067 2026/05/31 10:13:21 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 10:13:29 server.go:314: [web/ws] client disconnected from 127.0.0.1:54176 2026/05/31 10:13:29 server.go:308: [web/ws] client connected from 127.0.0.1:32830 2026/05/31 11:12:18 server.go:308: [web/ws] client connected from 127.0.0.1:38274 2026/05/31 11:12:21 server.go:314: [web/ws] client disconnected from 127.0.0.1:38274 2026/05/31 11:13:03 server.go:308: [web/ws] client connected from 127.0.0.1:36484 2026/05/31 11:13:05 server.go:314: [web/ws] client disconnected from 127.0.0.1:36484 2026/05/31 11:13:05 server.go:308: [web/ws] client connected from 127.0.0.1:36546 2026/05/31 11:13:05 server.go:308: [web/ws] client connected from 127.0.0.1:36570 2026/05/31 11:13:06 server.go:314: [web/ws] client disconnected from 127.0.0.1:36570 2026/05/31 11:13:06 server.go:308: [web/ws] client connected from 127.0.0.1:36622 2026/05/31 11:13:06 server.go:314: [web/ws] client disconnected from 127.0.0.1:36622 2026/05/31 11:13:06 server.go:308: [web/ws] client connected from 127.0.0.1:36650 2026/05/31 11:13:07 server.go:314: [web/ws] client disconnected from 127.0.0.1:36650 2026/05/31 11:13:07 server.go:308: [web/ws] client connected from 127.0.0.1:36720 2026/05/31 11:13:09 server.go:314: [web/ws] client disconnected from 127.0.0.1:36720 2026/05/31 11:13:09 server.go:308: [web/ws] client connected from 127.0.0.1:48980 2026/05/31 11:13:15 server.go:314: [web/ws] client disconnected from 127.0.0.1:48980 2026/05/31 11:13:16 server.go:314: [web/ws] client disconnected from 127.0.0.1:36546 2026/05/31 11:13:32 server.go:308: [web/ws] client connected from 127.0.0.1:55830 2026/05/31 11:13:37 server.go:314: [web/ws] client disconnected from 127.0.0.1:55830 2026/05/31 11:13:37 server.go:308: [web/ws] client connected from 127.0.0.1:49306 2026/05/31 11:14:21 server.go:314: [web/ws] client disconnected from 127.0.0.1:49306 2026/05/31 11:14:21 server.go:308: [web/ws] client connected from 127.0.0.1:57518 2026/05/31 11:14:26 server.go:314: [web/ws] client disconnected from 127.0.0.1:57518 2026/05/31 11:14:27 server.go:308: [web/ws] client connected from 127.0.0.1:57558 2026/05/31 11:14:29 server.go:314: [web/ws] client disconnected from 127.0.0.1:57558 2026/05/31 11:17:29 server.go:308: [web/ws] client connected from 127.0.0.1:34898 2026/05/31 11:17:31 server.go:314: [web/ws] client disconnected from 127.0.0.1:34898 2026/05/31 11:17:31 server.go:308: [web/ws] client connected from 127.0.0.1:34936 2026/05/31 11:17:31 server.go:314: [web/ws] client disconnected from 127.0.0.1:34936 2026/05/31 11:17:31 server.go:308: [web/ws] client connected from 127.0.0.1:35000 2026/05/31 11:17:44 server.go:314: [web/ws] client disconnected from 127.0.0.1:35000 2026/05/31 11:17:44 server.go:308: [web/ws] client connected from 127.0.0.1:60662 2026/05/31 11:20:50 server.go:314: [web/ws] client disconnected from 127.0.0.1:60662 2026/05/31 11:20:50 server.go:308: [web/ws] client connected from 127.0.0.1:48454 2026/05/31 11:20:54 server.go:314: [web/ws] client disconnected from 127.0.0.1:48454 2026/05/31 11:21:10 server.go:308: [web/ws] client connected from 127.0.0.1:47208 2026/05/31 11:21:14 server.go:314: [web/ws] client disconnected from 127.0.0.1:47208 2026/05/31 11:25:29 server.go:308: [web/ws] client connected from 192.168.86.199:60363 2026/05/31 11:36:06 server.go:300: [web/ws] upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header 2026/05/31 11:38:16 server.go:300: [web/ws] upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header 2026/05/31 12:19:36 server.go:314: [web/ws] client disconnected from 192.168.86.199:60363 2026/05/31 12:35:19 server.go:314: [web/ws] client disconnected from 127.0.0.1:32830 2026/05/31 13:27:00 scheduler.go:264: [scheduler] firing Dhuhr Athan 2026/05/31 13:27:00 manager.go:147: [chromecast] PlayAthan: prayer=Dhuhr file=media_Athan.mp3 full_url=http://192.168.86.5:28427/media/media_Athan.mp3 2026/05/31 13:27:00 manager.go:77: [chromecast] discovering devices via mDNS... 2026/05/31 13:27:00 manager.go:96: [chromecast] found: SHIELD (SHIELD Android TV) at 192.168.86.169:8009 2026/05/31 13:27:00 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.188:32197 2026/05/31 13:27:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.188:32003 2026/05/31 13:27:00 manager.go:96: [chromecast] found: Nest display (Google Nest Hub) at 192.168.86.188:8009 2026/05/31 13:27:00 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.188:32067 2026/05/31 13:27:00 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.188:32101 2026/05/31 13:27:00 manager.go:96: [chromecast] found: Upstairs (Google Cast Group) at 192.168.86.234:32003 2026/05/31 13:27:00 manager.go:96: [chromecast] found: All Speakers (Google Cast Group) at 192.168.86.234:32197 2026/05/31 13:27:00 manager.go:96: [chromecast] found: Party (Google Cast Group) at 192.168.86.234:32101 2026/05/31 13:27:00 manager.go:96: [chromecast] found: athan (Google Cast Group) at 192.168.86.148:32067 2026/05/31 13:27:08 manager.go:302: [chromecast] connect attempt 1/3 failed: unable to connect to chromecast at '192.168.86.148:32067': dial tcp 192.168.86.148:32067: connect: connection refused 2026/05/31 13:27:10 manager.go:302: [chromecast] connect attempt 2/3 failed: unable to connect to chromecast at '192.168.86.148:32067': dial tcp 192.168.86.148:32067: connect: connection refused 2026/05/31 13:27:12 manager.go:302: [chromecast] connect attempt 3/3 failed: unable to connect to chromecast at '192.168.86.148:32067': dial tcp 192.168.86.148:32067: connect: connection refused 2026/05/31 13:27:14 main.go:170: [main] speaker athan (Dhuhr): connect to athan: failed to connect after 3 attempts 2026/05/31 13:34:53 server.go:300: [web/ws] upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header 2026/05/31 13:34:58 server.go:300: [web/ws] upgrade error: websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header
Quran Recitation — Playing in browser