【问题标题】:socket.io can't connect to serversocket.io 无法连接到服务器
【发布时间】:2015-11-23 15:46:28
【问题描述】:

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

这是我在 .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'));
});

【问题讨论】:

  • “而 socket.io 无法下载客户端脚本”。这应该是您的服务器设置出现问题的第一个提示。
  • 我使用了 npm install socket.io。我正在将服务器从谷歌计算引擎迁移到 openshift。我也添加了我的服务器端代码。
  • 您的服务器设置不正确。请参阅 this documentation,了解如何让 socket.io 与 Express 一起工作。
  • 该文档是无用的,它仅用于本地主机设置,我正在尝试在 openshift 上运行。这要复杂得多。我尝试用 app 替换 require('socket.io'(http) 中的 http,但我的服务器甚至没有启动。它说“请传递一个 http.Server 实例”。当我的应用程序同时在 gce 和 openshift 上运行时, socket.io 工作正常,但它连接到 gce 服务器,而不是 openshift 服务器。当我尝试连接到 openshift 服务器时,我遇到了所有这些错误。
  • 你的代码一开始就在 localhost 上运行吗?

标签: node.js express socket.io openshift


【解决方案1】:

首先代替

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
    }
});

【讨论】:

  • 太棒了!我只需要io.connect("/");。由于io.connect("http://localhost"); 不起作用。谢谢大佬
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
相关资源
最近更新 更多