Javascript 将netty socketio与Tomcat一起使用

Javascript 将netty socketio与Tomcat一起使用,javascript,java,sockets,tomcat,Javascript,Java,Sockets,Tomcat,我正在从事一个使用tomcat作为后端的web项目,我正在尝试为我想要实现的一些特性添加netty socketio 这是我给tomcat的主要课程: package launch; import org.apache.catalina.WebResourceRoot; import org.apache.catalina.core.StandardContext; import org.apache.catalina.startup.Tomcat; import org.apache.cat

我正在从事一个使用tomcat作为后端的web项目,我正在尝试为我想要实现的一些特性添加netty socketio

这是我给tomcat的主要课程:

package launch;

import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.webresources.DirResourceSet;
import org.apache.catalina.webresources.StandardRoot;

import java.io.File;

public class Main {
    public static void main(String[] args) throws Exception {

        String webappDirLocation = "src/main/webapp";
        Tomcat tomcat = new Tomcat();

        String webPort = System.getenv("PORT");
        if(webPort == null || webPort.isEmpty()) {
            webPort = "80";
        }

        tomcat.setPort(Integer.valueOf(webPort));

        StandardContext ctx = (StandardContext) tomcat.addWebapp("", new File("./" + webappDirLocation).getAbsolutePath());
        File additionWebInfClasses = new File("target/classes");
        WebResourceRoot resources = new StandardRoot(ctx);
        resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes", additionWebInfClasses.getAbsolutePath(), "/"));
        ctx.setResources(resources);

        System.out.println("Starting server at port: " + webPort);

        //initialize firebase
        firebase.Firebase.initialize();
        //initialize socket.io
        socket.SocketClient.initialize();

        tomcat.start();
        tomcat.getServer().await();
    }
}
这是我的SocketClient类文件:

package socket;

import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.listener.ConnectListener;

public class SocketClient {
    static boolean initialized = false;

    static SocketIOServer socket;

    public static void initialize() {
        if(initialized)
            return;

        Configuration config = new Configuration();
        config.setHostname("localhost");
        config.setPort(81);

        socket = new SocketIOServer(config);

        socket.addConnectListener(new ConnectListener() {
            @Override
            public void onConnect(SocketIOClient socketIOClient) {
                System.out.println("connection");
            }
        });

        socket.start();

        initialized = true;
    }
}
下面是javascript文件:

let gameContainer = document.getElementById("gameContainer")
const socket = io.connect("http://localhost:81")
当我加载页面时,我得到错误:
socket.io-1.7.4.js:4948 gethttp://localhost:81/socket.io/?EIO=3&transport=polling&t=NLX8e2-net::ERR\u EMPTY\u响应

我尝试过使用函数
io()
,但是这也不起作用。我已验证套接字正在使用端口81。有没有办法解决这个问题