react-socket-test/.history/src/App_20210115153437.js

83 lines
1.7 KiB
JavaScript

import React, { useState, useEffect } from "react";
import { io } from "socket.io-client";
function useInput({ type }) {
const [value, setValue] = useState("");
const input = (
<input
value={value}
onChange={(e) => setValue(e.target.value)}
type={type}
/>
);
return [value, input];
}
function App() {
const [ENDPOINT, setEndpoint] = useInput({ type: "text" });
const [connected, setConnected] = useState(false);
const [emit, setEmit] = useInput({ type: "text" });
const [listen, setListen] = useInput({ type: "text" });
const [socket, setScoket] = useState("");
const [responseListen, setResponseListen] = useState("");
const [responseEmit, setResponseEmit] = useState("");
const handleConnection = () => {
// setEndpoint();
setScoket(io(ENDPOINT))
if (socket) {
setConnected(true)
} else {
setConnected(false)
}
};
const emitMessage = async () => {
const msg = await socket.emit(emit)
setResponseEmit(msg)
}
const listenOnMessage = () => {
socket.on(listen).then(res => {
setResponseListen(res)
}).catch(err => {
setResponseListen(err)
})
}
return (
<>
<p>ENTER THE ENDPOINT</p>
{setEndpoint} -> {ENDPOINT}
<br />
<button onClick={handleConnection}>CLICK HERE TO TEST</button>
{
connected
? <><div>
{setEmit} -> listen on {emit}
<button onClick={emitMessage}>CLICK HERE TO EMIT</button>
</div>
<div>
{setListen} -> listen on {listen}
<button onClick={listenOnMessage}>CLICK HERE TO LISTEN ON</button>
</div>
</>
: ""
}
<p>
</p>
</>
);
}
export default App;