Merge pull request #157 from ets-cfuhrman-pfe/ssl-changes

Ssl changes (debugging, trying to make wss work in prod)
This commit is contained in:
Christopher (Cris) Fuhrman 2024-10-30 17:23:43 -04:00 committed by GitHub
commit 4181a73a7e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 33 additions and 21 deletions

View file

@ -34,6 +34,7 @@ const JoinRoom: React.FC = () => {
}, []); }, []);
const handleCreateSocket = () => { const handleCreateSocket = () => {
console.log(`JoinRoom: handleCreateSocket: ${ENV_VARIABLES.VITE_BACKEND_URL}`);
const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL); const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL);
socket.on('join-success', () => { socket.on('join-success', () => {
@ -63,10 +64,10 @@ const JoinRoom: React.FC = () => {
socket.on('connect_error', (error) => { socket.on('connect_error', (error) => {
switch (error.message) { switch (error.message) {
case 'timeout': case 'timeout':
setConnectionError("Le serveur n'est pas disponible"); setConnectionError("JoinRoom: timeout: Le serveur n'est pas disponible");
break; break;
case 'websocket error': case 'websocket error':
setConnectionError("Le serveur n'est pas disponible"); setConnectionError("JoinRoom: websocket error: Le serveur n'est pas disponible");
break; break;
} }
setIsConnecting(false); setIsConnecting(false);

View file

@ -80,6 +80,7 @@ const ManageRoom: React.FC = () => {
}; };
const createWebSocketRoom = () => { const createWebSocketRoom = () => {
console.log('Creating WebSocket room...');
setConnectingError(''); setConnectingError('');
const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL); const socket = webSocketService.connect(ENV_VARIABLES.VITE_BACKEND_URL);
@ -88,7 +89,7 @@ const ManageRoom: React.FC = () => {
}); });
socket.on('connect_error', (error) => { socket.on('connect_error', (error) => {
setConnectingError('Erreur lors de la connexion... Veuillez réessayer'); setConnectingError('Erreur lors de la connexion... Veuillez réessayer');
console.error('WebSocket connection error:', error); console.error('ManageRoom: WebSocket connection error:', error);
}); });
socket.on('create-success', (roomName: string) => { socket.on('create-success', (roomName: string) => {
setRoomName(roomName); setRoomName(roomName);

View file

@ -21,14 +21,21 @@ class WebSocketService {
private socket: Socket | null = null; private socket: Socket | null = null;
connect(backendUrl: string): Socket { connect(backendUrl: string): Socket {
// console.log(backendUrl); console.log(`WebSocketService.connect(${backendUrl})`);
this.socket = io(`${backendUrl}`, {
// Ensure the URL uses wss: if the page is loaded over https:
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
const url = backendUrl.replace(/^http:/, protocol);
console.log(`WebSocketService.connect: changed url=${url}`);
this.socket = io(url, {
transports: ['websocket'], transports: ['websocket'],
reconnectionAttempts: 1 reconnectionAttempts: 1
}); });
return this.socket; return this.socket;
} }
disconnect() { disconnect() {
if (this.socket) { if (this.socket) {
@ -74,15 +81,15 @@ class WebSocketService {
// idQuestion: string // idQuestion: string
) { ) {
if (this.socket) { if (this.socket) {
this.socket?.emit('submit-answer', this.socket?.emit('submit-answer',
// { // {
// answer: answer, // answer: answer,
// roomName: roomName, // roomName: roomName,
// username: username, // username: username,
// idQuestion: idQuestion // idQuestion: idQuestion
// } // }
answerData answerData
); );
} }
} }
} }

View file

@ -69,8 +69,11 @@ let isDev = process.env.NODE_ENV === 'development';
console.log(`Environnement: ${process.env.NODE_ENV} (${isDev ? 'dev' : 'prod'})`); console.log(`Environnement: ${process.env.NODE_ENV} (${isDev ? 'dev' : 'prod'})`);
const io = configureServer(server); const io = configureServer(server);
console.log(`server.io configured: ${io.secure ? 'secure' : 'not secure'}`);
setupWebsocket(io); setupWebsocket(io);
console.log(`Websocket setup with on() listeners.`);
app.use(cors()); app.use(cors());
app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json()); app.use(bodyParser.json());

View file

@ -16,12 +16,12 @@ const setupWebsocket = (io) => {
} }
totalConnections++; totalConnections++;
// console.log( console.log(
// "A user connected:", "A user connected:",
// socket.id, socket.id,
// "| Total connections:", "| Total connections:",
// totalConnections totalConnections
// ); );
socket.on("create-room", (sentRoomName) => { socket.on("create-room", (sentRoomName) => {
if (sentRoomName) { if (sentRoomName) {