Commit 21f7629
authored
Automatic websocket reconnect and reload handling (#5805)
* emit_update: take `token` instead of `sid`
This allows the app to be more resilient in the face of websocket reconnects.
The event is processed against a token, so there's no reason to maintain
websocket affinity for event processing. Whenever the update is ready to send,
it will be sent to the current websocket/sid associated.
* Automatic websocket reconnect and reload handling
* ensureSocketConnected is called when adding events or pumping the queue to
trigger an automatic reconnection to the backend
* when "reload" event is encountered, trigger a re-hydrate and wait until ALL
on_load have finished processing and `is_hydrated` is True before requeue the
event that caused the "reload"
* Update mock token_to_sid mapping for test
* Add disconnect/reconnect test to test_background_task
* Remove non-background disconnect/reconnect test
It doesn't really work, because the frontend will only process one
non-background event at a time, so the disconnect ends up occuring after the
event handler is already done.1 parent 1d9fee6 commit 21f7629
File tree
5 files changed
+123
-36
lines changed- reflex
- .templates/web/utils
- istate
- tests
- integration
- units
5 files changed
+123
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
531 | 531 | | |
532 | 532 | | |
533 | 533 | | |
| 534 | + | |
534 | 535 | | |
535 | 536 | | |
536 | 537 | | |
| |||
552 | 553 | | |
553 | 554 | | |
554 | 555 | | |
555 | | - | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
556 | 567 | | |
557 | 568 | | |
558 | 569 | | |
| |||
593 | 604 | | |
594 | 605 | | |
595 | 606 | | |
| 607 | + | |
596 | 608 | | |
597 | 609 | | |
598 | 610 | | |
| |||
603 | 615 | | |
604 | 616 | | |
605 | 617 | | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
606 | 626 | | |
607 | 627 | | |
608 | 628 | | |
| |||
612 | 632 | | |
613 | 633 | | |
614 | 634 | | |
615 | | - | |
| 635 | + | |
| 636 | + | |
616 | 637 | | |
617 | 638 | | |
618 | 639 | | |
| |||
774 | 795 | | |
775 | 796 | | |
776 | 797 | | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
777 | 818 | | |
778 | 819 | | |
779 | 820 | | |
780 | 821 | | |
| 822 | + | |
| 823 | + | |
781 | 824 | | |
782 | 825 | | |
783 | 826 | | |
| |||
870 | 913 | | |
871 | 914 | | |
872 | 915 | | |
873 | | - | |
874 | | - | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
881 | | - | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
886 | | - | |
887 | | - | |
| 916 | + | |
| 917 | + | |
888 | 918 | | |
889 | 919 | | |
890 | 920 | | |
| |||
903 | 933 | | |
904 | 934 | | |
905 | 935 | | |
| 936 | + | |
906 | 937 | | |
907 | 938 | | |
908 | 939 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
| |||
1559 | 1560 | | |
1560 | 1561 | | |
1561 | 1562 | | |
1562 | | - | |
| 1563 | + | |
1563 | 1564 | | |
1564 | 1565 | | |
1565 | 1566 | | |
| |||
1599 | 1600 | | |
1600 | 1601 | | |
1601 | 1602 | | |
1602 | | - | |
| 1603 | + | |
1603 | 1604 | | |
1604 | 1605 | | |
1605 | 1606 | | |
| |||
2061 | 2062 | | |
2062 | 2063 | | |
2063 | 2064 | | |
2064 | | - | |
| 2065 | + | |
2065 | 2066 | | |
2066 | 2067 | | |
2067 | 2068 | | |
2068 | 2069 | | |
2069 | | - | |
| 2070 | + | |
2070 | 2071 | | |
2071 | | - | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
2072 | 2075 | | |
2073 | 2076 | | |
2074 | | - | |
2075 | | - | |
2076 | | - | |
2077 | | - | |
| 2077 | + | |
2078 | 2078 | | |
2079 | 2079 | | |
2080 | 2080 | | |
| |||
2165 | 2165 | | |
2166 | 2166 | | |
2167 | 2167 | | |
2168 | | - | |
| 2168 | + | |
2169 | 2169 | | |
2170 | 2170 | | |
2171 | 2171 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
74 | 76 | | |
75 | | - | |
76 | 77 | | |
77 | 78 | | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
78 | 83 | | |
79 | 84 | | |
80 | 85 | | |
| |||
127 | 132 | | |
128 | 133 | | |
129 | 134 | | |
130 | | - | |
131 | | - | |
132 | 135 | | |
133 | 136 | | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
| 137 | + | |
140 | 138 | | |
141 | 139 | | |
142 | 140 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
112 | 121 | | |
113 | 122 | | |
114 | 123 | | |
| |||
134 | 143 | | |
135 | 144 | | |
136 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
137 | 149 | | |
138 | 150 | | |
139 | 151 | | |
| |||
185 | 197 | | |
186 | 198 | | |
187 | 199 | | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
188 | 205 | | |
189 | 206 | | |
190 | 207 | | |
| |||
395 | 412 | | |
396 | 413 | | |
397 | 414 | | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2005 | 2005 | | |
2006 | 2006 | | |
2007 | 2007 | | |
| 2008 | + | |
2008 | 2009 | | |
2009 | 2010 | | |
2010 | 2011 | | |
| |||
2214 | 2215 | | |
2215 | 2216 | | |
2216 | 2217 | | |
| 2218 | + | |
2217 | 2219 | | |
2218 | 2220 | | |
2219 | 2221 | | |
| |||
0 commit comments