【发布时间】:2016-08-10 04:32:34
【问题描述】:
我正在尝试从桌面应用程序连接到我在 Heroku 上部署的远程服务器。
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var port = process.env.PORT || 3000;
server.listen(port, function() {
console.log('listening to', port);
});
io.on('connection', function(socket) {
socket.on('send', function(data) {
socket.emit('sever send msg', data);
}
});
这是我的服务器代码,我已经将该服务器部署到 Heroku,有没有办法让我通过桌面应用程序的套接字连接到该服务器?我正在使用 Electron 尝试制作桌面应用程序,并尝试让 socket.io 与远程服务器一起使用。以下是我的桌面应用程序中的相关代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket = io('THE HEROKU APP URL');
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
</script>
<div id="root"></div>
</html>
目前我不断收到 503 failed to connect 服务不可用
【问题讨论】:
-
你在同一个端口上监听和连接吗?
-
我对heroku不熟悉,但是我看到上面sn-p中的代码指定了一个PORT,默认为3000,但是第二个sn-p中的代码没有提到一个PORT - 我只是想知道你是否在连接的每一端都使用相同的端口......虽然端口在技术上是 URL 的一部分,但我只询问了端口,假设你至少会使用正确的主机和URL 中的路径
-
不透露
'THE HEROKU APP URL'- 它是否包含端口 -
“THE HEROKU APP URL”目前不包含端口,但我不确定要将哪个端口添加到 url 以正确连接
-
我推荐你的服务器端正在监听的同一个端口
标签: javascript sockets heroku socket.io electron