Java客户端无法与heroku上的NodeJS服务器连接

时间:2017-07-23 21:45:05

标签: java node.js sockets heroku

所以我有这个Javascript服务器:

const net = require('net');

var port = process.env.PORT || 3001;

net.createServer(function (sock){
    console.log('CONNECTED: ' + sock.remoteAddress + ":" + sock.remotePort);

    sock.on('data', function(data){
        console.log(data.toString());
    });

    sock.on('close', function(data){
        console.log('DISCONNECTED: ' + sock.remoteAddress + ":" + sock.remotePort);

    });

    sock.on('error', function(error){
        console.log(error);
    });

}).listen(port, '0.0.0.0');

console.log('Listening on: ' + port);

我使用它来连接我的Java客户端:

public void connect () {
    System.out.println("Connecting with: " + host + ":" + port);
    try {
        this.socket = new Socket(this.host, this.port);
        System.out.println("Connected!");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

当我在本地尝试它时它起作用但每当我将它上传到heroku时它从不记录CONNECTED消息或任何接收的数据,所以我不认为它连接。

我使用它作为ip / port来连接我的客户端:.herokuapp.com:heroku.env.PORT不是字面上的,我使用heroku端口在启动时给我的应用程序,因为我看到了听力on:message。

我做错了吗?或者heroku不支持套接字吗?

1 个答案:

答案 0 :(得分:0)

您的客户端应该通过端口80或443连接到<appname>.herokuapp.comPORT var仅用于内部绑定。