openshift / nodeJS

时间:2015-11-05 14:58:33

标签: javascript node.js websocket socket.io openshift

我知道这里已经提出了一些类似的问题,但是提出的解决方案似乎都没有。 (我将在下面发布相关答案)

我无法获得一个简单的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&amp; transport = polling&amp; t = 1446734825100-0 net :: ERR_CONNECTION_TIMED_OUT *

我试过的东西

  

使用端口80而不是8000(在客户端上)

结果: WebSocket连接到&#39; ws://app-domain.rhcloud.com/socket.io/?EIO = 2&amp; transport = websocket&amp; sid = rsqAz33O_aYSFfN3AAAD&#39;失败:WebSocket握手期间出错:意外的响应代码:400

  

交换 server.list(... var io = require(&#39; ...

没有结果

  

使用服务器的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上发生了一些有趣的事情。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我终于破解了它。显然,通过硬编码服务器端的传输配置,它可以工作。

var io = require('socket.io', {
        transports: ['websocket']
    })(http);

希望这可以帮助将来的某个人。

答案 1 :(得分:0)

当我在openshift上使用socket.io创建一个简单的聊天应用程序时遇到了同样的问题。我在Stack Overflow上看了很多评论。最后,我换了两个地方。

首先,添加:

ExtendedNav

其次,在需要socket.io模块时添加一个选项。

$('.ExtendedNav').toggleClass('hidden')