socket.io连接404

问题遇到的现象和发生背景

用socket.io做一个聊天系统,客户端的socket.io-client和服务器的socket.io连接不上

问题相关代码,请勿粘贴截图

客户端代码:
import io from 'socket.io-client'
//连接服务器,拿到socket对象
var socket = io.connect('http://localhost:4000/')
socket.emit('login',{msg:'登陆成功'})

服务端代码:
const http = require('http')
const { Server } = require("socket.io");
const server = http.createServer(app)
const io = new Server(server);

//监听connection事件
io.on('connection', (socket) => {
    socket.on('login', (msg) => {
            console.log(msg);
        })
 })
运行结果及报错内容

报错:GET http://localhost:4000/socket.io/?EIO=4&transport=polling&t=O32iKSJ 404 (Not Found)

我的解答思路和尝试过的方法

我以为是跨域问题,设置了跨域还是有问题

我想要达到的结果

能连接上

不是http协议 ws://localhost:4000/socket.io