Files
Shu DingandGitHub eb4b41e513 Fix unmatched WebSocket upgrade requests being closed (#57245)
We should not close unmatched sockets as it might be handled by user's server.

Fixes #56996
Fixes #49334
Fixes #55299
2023-10-23 17:23:34 +00:00

42 lines
848 B
JavaScript

'use client'
import { useEffect, useState } from 'react'
import io from 'socket.io-client'
let socket
export default function Home() {
const [value, setValue] = useState('')
const socketInitializer = async () => {
// We call this just to make sure we turn on the websocket server
await fetch('/api/socket')
socket = io(undefined, {
path: '/api/my_awesome_socket',
})
socket.on('connect', () => {
console.log('Connected', socket.id)
})
socket.on('newIncomingMessage', (msg) => {
setValue(msg)
})
}
const sendMessageHandler = async (e) => {
if (!socket) return
const value = e.target.value
setValue(value)
socket.emit('createdMessage', value)
}
useEffect(() => {
socketInitializer()
}, [])
return <input value={value} onChange={sendMessageHandler} />
}