SPA에서 Socket.IO 연결을 추상화하는 방법.
4647 단어 javascripttutorialreact
해결책
단일 파일에서 socketIO 구현을 추상화하기 위해 이벤트 콜백을 함수로 사용하고 이벤트 이미터를 반환하는 클로저를 만들 수 있습니다(SocketManager.js라고 부름).
예시
import io from "socket.io-client";
const SocketManager = ({
onCallback = () => {},
}) => {
const socket = io(/* server url to connect */);
// Callbacks
socket.on('callback-event-name', (payload) => {
onCallback && onCallback(payload);
});
// Emitters
const emitEvent = (eventPayload) => {
socket.emit('emit-event-name', eventPayload);
};
return {
socket,
emitEvent
};
};
export default SocketManager;
그런 다음 React 코드에서 다음과 같이 사용할 수 있습니다.
import React from "react";
import SocketManager from "./SocketManager.js";
const SocketConsumer = () => {
const { emitEvent } = SocketManager({
onCallback: handleCallback,
});
const handleCallback = (payload) => {
/** Do something with the payload */
};
return <button onClick={emitEvent}>Fire Event</button>;
};
export default SocketConsumer;
이것이 귀하의 프로젝트에 도움이 되기를 바랍니다. 감사합니다 🙂
Reference
이 문제에 관하여(SPA에서 Socket.IO 연결을 추상화하는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rhuzaifa/how-do-abstract-socketio-connections-in-your-spa-c34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)