No state No Websocket (#1950)
This commit is contained in:
parent
024cb5fa9b
commit
433ccda3a6
@ -507,7 +507,8 @@ export const useEventLoop = (
|
||||
if (!router.isReady) {
|
||||
return;
|
||||
}
|
||||
|
||||
// only use websockets if state is present
|
||||
if (Object.keys(state).length > 0) {
|
||||
// Initialize the websocket connection.
|
||||
if (!socket.current) {
|
||||
connect(socket, dispatch, ['websocket', 'polling'], setConnectError, client_storage)
|
||||
@ -518,6 +519,7 @@ export const useEventLoop = (
|
||||
await processEvent(socket.current)
|
||||
}
|
||||
})()
|
||||
}
|
||||
})
|
||||
return [state, addEvents, connectError]
|
||||
}
|
||||
|
@ -175,6 +175,7 @@ class App(Base):
|
||||
self.add_cors()
|
||||
self.add_default_endpoints()
|
||||
|
||||
if self.state is not DefaultState:
|
||||
# Set up the Socket.IO AsyncServer.
|
||||
self.sio = AsyncServer(
|
||||
async_mode="asgi",
|
||||
|
@ -14,6 +14,7 @@ import pytest
|
||||
from plotly.graph_objects import Figure
|
||||
|
||||
import reflex as rx
|
||||
from reflex.app import App
|
||||
from reflex.base import Base
|
||||
from reflex.constants import CompileVars, RouteVar, SocketEvent
|
||||
from reflex.event import Event, EventHandler
|
||||
@ -1528,23 +1529,24 @@ async def test_state_manager_lock_expire_contend(
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def mock_app(monkeypatch, app: rx.App, state_manager: StateManager) -> rx.App:
|
||||
def mock_app(monkeypatch, state_manager: StateManager) -> rx.App:
|
||||
"""Mock app fixture.
|
||||
|
||||
Args:
|
||||
monkeypatch: Pytest monkeypatch object.
|
||||
app: An app.
|
||||
state_manager: A state manager.
|
||||
|
||||
Returns:
|
||||
The app, after mocking out prerequisites.get_app()
|
||||
"""
|
||||
app = App(state=TestState)
|
||||
|
||||
app_module = Mock()
|
||||
|
||||
setattr(app_module, CompileVars.APP, app)
|
||||
app.state = TestState
|
||||
app.state_manager = state_manager
|
||||
assert app.event_namespace is not None
|
||||
app.event_namespace.emit = AsyncMock()
|
||||
app.event_namespace.emit = AsyncMock() # type: ignore
|
||||
monkeypatch.setattr(prerequisites, "get_app", lambda: app_module)
|
||||
return app
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user