Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import io from 'socket.io-client';
- import {Subject} from 'rxjs/Subject';
- import {ADD_MESSAGE} from './message';
- const initialState = {
- socket: null,
- io: io,
- onReceiveMessage: new Subject()
- };
- export const CONNECT_SOCKET = '/socket/connect';
- export const DISCONNECT_SOCKET = '/socket/disconnect';
- export default (state = initialState, action = {}) => {
- switch (action.type) {
- case CONNECT_SOCKET:
- const socket = action.payload;
- const dispatch = action.dispatch;
- socket.on("/message/POST", (data) => {
- dispatch({
- type: ADD_MESSAGE,
- payload: data
- });
- state.onReceiveMessage.next(data);
- });
- return {
- ...state,
- socket: socket,
- };
- case DISCONNECT_SOCKET:
- socketDisconnect(state.socket);
- return {
- ...state,
- socket: null
- };
- default:
- return state;
- }
- }
- export const socket_connect = (token) => {
- return dispatch => {
- dispatch({
- type: token ? CONNECT_SOCKET : DISCONNECT_SOCKET,
- payload: token,
- })
- }
- };
- export const socketDisconnect = (socket) => {
- if (socket) {
- socket.disconnect();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement