modul-signalr-client
v0.0.2
Published
modul ASP.NET Core SignalR client
Downloads
3
Readme
modul-signalr-client
Установка
yarn add modul-signalr-client
createSignalRMiddleware
Функция создаёт middleware для redux.
Параметры:
- url - адрес подклчения к хабу.
- comets - объект, ключами которого являются имена методов, а значениями - функции-обработчики с параметрами (dispatch, data), где dispatch- store.dispatch, а data - полученные с сервера данные.
- transport - указание кастомных типов транспорта (необязательный параметр).
- exitMethod - метод, вызов которого означает, что нужно отключить текущего клиента.
- startActionType - тип action'а, после которого будет осуществлена попытка подключения к хабу.
- connectedAction - action, который будет отправлен после успешного подключения.
- log - функция логирования, принимает параметры (method, data), где method - имя вызванного сервером метода, data - полученные данные. По умолчанию - функция, выводящая в консоль имя метода и полученные данные.
- reconnectTimeout - количество миллисекунд ожидания перед повторной попыткой подключения. Неположительное значение запрещает переподключение. По умолчанию 5000.
- logLevel - уровень логирования (необязательный параметр).
- onExit - функция принимающая store.dispatch и вызываемая при вызове exitMethod (см. выше)
- onConnectionError - функция с параметрами (dispatch, error), вызываемая при провале попытки подключения к хабу.
Пример функции, возвращающей middleware
import { createSignalRMiddleware } from 'modul-signalr-client';
import * as notify from '../common/uiElements/Notify/actions';
import { startSignalR, signalRStarted } from '../common/actions/cometActions';
export const signalRMiddleware = comets => createSignalRMiddleware({
url: '/api/intcomet/comet?context=sales',
exitMethod: 'Exit',
startActionType: startSignalR.toString(),
connectedAction: signalRStarted,
comets,
onExit: dispatch => dispatch(
notify.error(
'Зафиксирован новый вход в систему под Вашей учётной записью',
'Работа приостановлена',
{ autoDismiss: 0 },
),
),
onConnectionError: (dispatch, err) => {
console.error(err);
dispatch(notify.error('Приложение работает в режиме ограниченной функциональности'));
},
});