Socket.io 如何让远程客户端访问我的服务器?

Socket.io 如何让远程客户端访问我的服务器?,socket.io,server,ip,netty,Socket.io,Server,Ip,Netty,那里,, 我正在尝试用netty socket io编写一个聊天应用程序 我的服务器代码 Configuration config = new Configuration(); config.setHostname(my IP address); config.setPort(3000); final SocketIOServer server = new SocketIOServer(config); server.start(); 在客户端(网页

那里,, 我正在尝试用netty socket io编写一个聊天应用程序

我的服务器代码

    Configuration config = new Configuration();
    config.setHostname(my IP address);  
    config.setPort(3000);
    final SocketIOServer server = new SocketIOServer(config);
    server.start();
在客户端(网页)上,我有:

当我使用我的公共/外部IP地址(谷歌搜索“what is my IP”时得到的地址)时,我得到无法分配请求的地址:bind错误

当我使用我的内部地址时,服务器只能由同一网络(我学校的wifi)上的客户端访问

我只想知道远程客户端如何通过ip地址访问我机器上的服务器。多谢各位


我对这个领域很陌生,有很多疑问,因此如果问题很愚蠢,请提前道歉。

当您使用公共IP时,外部客户端无法访问您的公共IP,因为它是您学校的公共IP(所有连接的机器都具有相同的共享公共/外部IP)您学校的防火墙或路由器未配置为将流量从端口3000路由到您的特定机器。 必须更改配置。。。但也许你做不到

因此,您只能将ip/端口与内部网络ip绑定,并且只能由同一网络上的计算机访问


最好的解决方案可能是使用托管服务将服务器置于学校网络之外

这是防火墙和/或路由问题我应该使用哪个ip地址?外部ip还是别的什么?谢谢你的回复。你对托管服务有什么建议吗???@Kevin不,你有很多提供商(如gandi、ovh、google、amazon等)选择你喜欢的。你也可以使用你自己的机器,它可能稍微便宜一点,但它必须在你学校的网络之外,并且经常在线才能被访问。
    var socket =  io.connect(my IP address);