Netty SocketIO - 无法在 AWS 中分配请求的地址

Netty SocketIO - Cannot assign requested address in AWS

我已经使用 Spring 框架和 Netty SocketIO 实现了一个 websocket 服务器。在开发过程中,我将主机地址用作 localhost 并且服务器运行良好。

当我尝试将我的代码部署到 AWS 时,我将主机地址更改为实例的 public IP 地址。但是我收到以下错误并且无法启动我的服务器

Caused by: java.net.BindException: Can't assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:484)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1080)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:197)
at io.netty.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:350)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)

如果我可以在 AWS 中为主机分配我的 public IP 地址,那么我可以使用哪个 IP 地址来启动我的 Socket 服务器?

检查您的 /etc/hosts 文件。 127.0.0.1 或 192.168.10.10 或任何指向 localhost 的 IP 也必须指向您的网站。

127.0.0.1 localhost my.website.com

现在,以 my.website.com 作为主机启动您的套接字,并根据需要选择一个端口。