node.js - socket.io 无法连接到服务器

标签 node.js express socket.io openshift

我在 openshift 上托管我的应用程序。我正在使用自定义域。 socket.io 无法下载客户端脚本,所以我只使用了 cdn。但是现在它无法连接到命名空间。这些是它在控制台日志中给我的错误

enter image description here

这是我在 .html 页面上的客户端代码,用于下载客户端脚本

<script src="https://cdn.socket.io/socket.io-1.3.7.js"></script>

和连接到索引命名空间的 .js 索引页面

var socket = io("http://www.loomius.com/index");

这是我的服务器端代码

var express = require('express'); 
var app = express(); 
var http = require('http');
var io = require('socket.io')(http);
var mongoose = require('mongoose');
var favicon = require('serve-favicon');
var bodyParser = require('body-parser');
var https = require('https');

// listening on the port

app.set('port', process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || 3002);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1");

http.createServer(app).listen(app.get('port') ,app.get('ip'), function () {
    console.log("✔ Express server listening at %s:%d ", app.get('ip'),app.get('port'));
});

最佳答案

首先代替

var socket = io("http://www.loomius.com/index");

用它来解决需要cdn的问题

var socket = io.connect("/");

然后在服务器上使用这个代替

http = http.createServer( app ).listen( process.env.PORT, process.env.IP || "0.0.0.0", function() { // or define ip and port manually   
    var io = require( 'socket.io' )( http );

    io.on('connection', function( socket ) {
        // add event listeners here
    }
});

关于node.js - socket.io 无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33854578/

相关文章:

mysql - Nodejs Express MySQL session 存储

javascript - Socket.io 在其他服务器文件中发出事件

node.js - 在Nodejs(带有express js)项目的ejs文件中添加Font Awesome图标

javascript - 找不到模块 : error when deployed on Heroku

用于代码语法高亮显示的 Javascript 库

mysql - 从nodejs mysql连接函数返回数据

node.js - Passport 使用 NextJs 和 Express 对每个请求调用 deserializeUser

node.js - 向客户端发送套接字,错误 : Converting circular structure to JSON

javascript - Socket.io:如何唯一标识客户端和服务器上的连接?

node.js - 无法快速使用 Redis