-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
Properties:
-
Connection Props
Starts a new connection (when any one changes). No connection is made when either of them is falsy.url: null | string
Remote endpoint (Ex: http://example.com/your-app/params)ident: null | {}
User identification token. Ex:{ type: 'fb', token: 'asdfsfkljsdfjasldf' }network: boolean
Network online statusclearIdent: () => void
A callback invoked when the server doesn't identify theidentvalue sent over for identification
-
Communication Props
api: { [string]: API }
API structure available for execution on the shocked instance.context: any
Client context to match with server
-
Synchronization Props
-
dispatch: (state, action) => void
The dispatch method to synchronize server state with client. This should be thedispatchmethod of your redux or redux compatible stores. -
sync: () => Promise<void>
A synchronization function that is invoked as soon as the connection goes online. Use this opportunity to synchronize all offline data with the server
-
-
Configuration Props
retryInterval: numberdefault: 1000
Number of milliseconds before which reconnection attempts are not made. Reconnection attempts are made whenever the connection is terminated, unless the connection has been rejected by the server (4001).
Example
function offlineSynchronizer() {
}
async function sync() {
// First Commit and then perform other synchronizations
// Extract synchronization records
const toSync = db.getRecords();
// Return context to commit
return null;
}
export default function YourApp() {
// Use simple helpers to get network status
const network = useNetStatus();
// Use authentication library to extract the session information
const { token, logout } = useAuth();
// Extract parameters from session
const user =
const sessionId = session && session.id;
const url = session && `ws://example.com/your-app/${session.params}`;
// If there isn't any session available, may be show a Login screen
const body = session ? <Home /> : <Login />;
return (
<Shocked
url={url}
network={network}
ident={token}
clearIdent={logout}
context={currentLodgeId}
dispatch={store.dispatch}
sync={sync}
>
{body}
</Shocked>
);
}Metadata
Metadata
Assignees
Labels
No labels