Server-side code:
const express = require("express");
const app = express();
const http = require("http");
const { Server } = require("socket.io");
const cors = require("cors");
app.use(cors());
const server = http.createServer(app);
const io = new Server(server, {
cors: {
origin: "*",
methods: ["GET", "POST"],
}
});
io.on("connection", (socket) => {
console.log(`User Connected: ${socket.id}`);
socket.on("join_room", (data) => {
socket.join(data);
});
});
server.listen(8080, () => {
console.log("SERVER IS RUNNING");
});
Client-side code:
import "./App.css";
import io from "socket.io-client";
import { useEffect, useState } from "react";
const socket = io.connect(`http://localhost:8080`);
function App() {
//Room State
const [room, setRoom] = useState("");
const joinRoom = () => {
if (room !== "") {
socket.emit("join_room", room);
}
};
return (
<div className="App">
<input
placeholder="Room Number..."
onChange={(event) => {
setRoom(event.target.value);
}}
/>
<button onClick={joinRoom}> Join Room</button>
<input
placeholder="Message..."
onChange={(event) => {
setMessage(event.target.value);
}}
/>
<button onClick={sendMessage}> Send Message</button>
<h1> Message:</h1>
{messageReceived}
</div>
);
}
export default App;
But getting the following error after hosting it on cloudflare pages. Same thing works fine in local.
type or paste code here
[Error](polling.js:311 GET`http://localhost:8080/socket.io/?EIO=4&transport=polling&t=OKjwWGP net::ERR_CONNECTION_REFUSED)
Can you please help me?
type or paste code here
````Preformatted text`