【发布时间】:2015-11-05 14:58:32
【问题描述】:
我知道这里有人问过一些类似的问题,但是建议的解决方案似乎都不起作用。 (我会在下面发布相关答案)
我无法让一个简单的 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 p>
交换 server.list(... 和 var io = require('...
没有结果
使用服务器的ip地址代替http://app-domain.rhcloud.com
没有结果
类似问题
以下问题涉及相同的问题,但是到目前为止,建议的解决方案都没有奏效
Socket.io and node on OpenShift
OpenShift NodeJS deployment : socket.io index.html port assignment, etc
unable to deploy nodejs socket io application on openshift
Can't get socket.io and nodejs running with OpenShift
Socket.io.js returns 404 on OpenShift
我还克隆了一些 socket.io/openshift 的 github 示例,但它们都处理相同的问题。
要么我做错了什么,要么在 openshift 上发生了一些有趣的事情。
提前致谢。
【问题讨论】:
-
你试过在客户端强制 websocket 传输吗?
this.socket = io('...', {forceNew: true, transports: ['websocket']}); -
您是否尝试在尝试连接时通过运行
rhc tail <yourappname>检查 OpenShift 日志?它可能会提供更多的线索,问题出在哪里。 -
@Jiri :是的,当然……但是没有语法错误,所以没有那么多日志记录。所以没有帮助!
-
@Xodrow 我试过了……没有显着变化
-
@Subtiv 运气好吗?我也一直在尝试这个。
标签: javascript node.js websocket socket.io openshift