我知道这里已经有相似的问题被问过了,但是没有一个提出的解决方案能够解决问题。(我将在下面发布相关的答案)
我无法让一个简单的websocket应用程序在openshift上工作。该应用程序在本地可以工作。 [编辑:我正在使用socket.io]
相关代码:
服务器端:
var express = require('express');
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io').listen(server);
server.listen(process.env.OPENSHIFT_NODEJS_PORT, process.env.OPENSHIFT_NODEJS_IP);
io.on('connection', function (socket) {
…
});
index.html
<script src="/socket.io/socket.io.js"></script>
Client.js
this.socket = io.connect('http://app-domain.rhcloud.com:8000', {'forceNew':true });
结果:
- GET http://****-****.rhcloud.com:8000/socket.io/?EIO=2&transport=polling&t=1446734825100-0 net::ERR_CONNECTION_TIMED_OUT *
我尝试过的方法
在客户端上使用80端口而不是8000端口
结果:WebSocket连接到'ws://app-domain.rhcloud.com/socket.io/?EIO=2&transport=websocket&sid=rsqAz33O_aYSFfN3AAAD'失败:WebSocket握手期间出错:意外的响应代码:400
交换server.list(…和var io = require('…
没有结果
使用服务器的IP地址而不是http://app-domain.rhcloud.com
没有结果
类似的问题
以下问题都涉及相同的问题,但迄今为止没有一个提出的解决方案起作用。
OpenShift NodeJS部署:socket.io index.html端口分配等
无法在OpenShift上部署nodejs socket io应用程序
无法使用OpenShift运行socket.io和nodejs
我还克隆了一些socket.io / openshift的github示例,但它们都涉及相同的问题。
要么我做错了什么,要么在openshift上出了点问题。
提前致谢。
this.socket = io('...', {forceNew: true, transports: ['websocket']});
- Xodrowrhc tail <yourappname>
来检查 OpenShift 日志吗?它可能会提供更多关于问题所在的线索。 - Jiri Fiala