在Cloud Foundry上配置socket.io

问题描述 投票:0回答:1

我正在尝试通过IBM Toolchains在Cloud Foundry上建立socket.io连接。我已经通过了docs并且一直试图让socket.io连接到端口4443.我对此有点新意,所以如果你能提供一些关于如何在CF上设置socket.io的指示,我将不胜感激。因为我仍然在努力消化部分文档。代码可以在下面找到。

//---------------------------
// app.js
//---------------------------

// Start the app on cloud foundry
var express = require('express'); 
var app = express();
var cfenv = require('cfenv');
var appEnv = cfenv.getAppEnv();

app.use(express.static(__dirname + '/public'));

app.listen(appEnv.port, '0.0.0.0', function() {
  console.log("Server is starting on " + appEnv.url);
});


// Connect socket.io
var server = require('http').Server(app);
var io = require('socket.io')(server);
var cookieParser = require('cookie-parser');

app.get('/', function (req, res) {
  res.sendFile(__dirname + 'public/index.html');
});

io.on('connection', function (socket) {
	console.log('a user connected');
});

var port = 4443;  // Cloud Foundry assigned port for TCP/WebSocket communications

server.listen(port, function() {
	console.log('listening on ', port);
});
<script src="/socket.io/socket.io.js"></script>
<script>
	var socket = io.connect("https://0.0.0.0:4443");
</script>

通过socket.io文档后我的理解是提供的IP应该是location.hostname,在这种情况下我认为是0.0.0.0,因为它指的是应用程序的express实例正在监听的IP。虽然不太确定。

通过将其更改为:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.slim.js"></script>
<script> var socket = io(); </script>

错误更改为404错误,并重复以下错误:“https://realtimetrafficanalysisaks.mybluemix.net/socket.io/?EIO=3&transport=polling&t=”。我已经检查过appserver设置,但似乎无法查明错误

提前致谢!

socket.io cloudfoundry
1个回答
0
投票

由于端口问题,我无法使用socket.io对此进行排序,但我能够使用express-ws包运行它

© www.soinside.com 2019 - 2024. All rights reserved.