xuchang-screen/src/store/socket-data-provider.js
2023-07-03 14:24:43 +08:00

41 lines
1.0 KiB
JavaScript

import { useState, useEffect } from 'react';
const SocketContext = React.createContext();
export const SocketContextProvider = (props) => {
const [runState, setRunState] = useState(null);
const [hisState, setHisState] = useState(null);
useEffect(() => {
const socket = new WebSocket('ws://172.16.1.55:8081/xc-screen/websocket/1');
socket.onopen = () => {
console.log('[*] socket connected!');
};
socket.onmessage = (e) => {
if ('data' in e) {
console.log('data ===> ', e.data);
if (e.data == '连接成功') return;
let incommingData = JSON.parse(e.data);
switch (incommingData.type) {
case 'RunData':
console.log('run data arrived, set RunData');
setRunState(incommingData.data);
break;
case 'HisData':
console.log('his data arrived, set HisData');
setHisState(incommingData.data);
break;
}
}
};
}, []);
return (
<SocketContext.Provider value={{ runState, hisState }}>
{props.children}
</SocketContext.Provider>
);
};
export default SocketContext;