2017-05-24 28 views
1

私のアプリではsocket.ioに接続しません。

私app.js(サーバー)Node.js + Socket.io app - herokuで動作しない

app.set('port',3000)
let server = app.listen(app.get('port'))
var io = require('socket.io').listen(server)
global.io = io

index.js(クライアント)

const socket = io.connect('https://xxx-my-secret-app.herokuapp.com')

ブラウザのコンソール

POST https://evening-savannah-51961.herokuapp.com/socket.io/?EIO=3&transport=polling&t=Lmx1tkf 404 (Not Found)

responceのHTML

<!DOCTYPE html><html><head><title></title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Not Found</h1><h2></h2><pre></pre></body></html>

依存関係:

"dependencies": { "body-parser": "~1.17.1", "connect": "^3.6.0", "connect-mongo": "^1.3.2", "cookie": "^0.3.1", "cookie-parser": "~1.4.3", "cookie-session": "^2.0.0-beta.1", "cors": "^2.8.3", "crypto": "0.0.3", "debug": "~2.6.3", "express": "~4.15.2", "express-formidable": "^1.0.0", "express-session": "^1.15.2", "fs": "0.0.1-security", "gravatar": "^1.6.0", "gravatary": "^1.0.0", "https": "^1.0.0", "mongoose": "^4.9.4", "morgan": "~1.8.1", "multer": "^1.3.0", "nodejs-gravatar": "^1.0.2", "passport": "^0.3.2", "passport-local": "^1.0.0", "passport.socketio": "^3.7.0", "pnglib": "0.0.1", "pug": "~2.0.0-beta11", "randomstring": "^1.1.5", "serve-favicon": "~2.4.2", "socket.io": "^1.7.3", "socketio-jwt": "^4.5.0"

私のアプリケーションはマルチユーザチャットです。クライアントアプリケーションの場合、私は角度4を使用します

答えて

1

あなたのサーバが異なって動作するポートを定義する必要があります。

Herokuは、アプリケーションが実行されているポートを設定し、公開する公開ポートにバインドします。ポートHerokuのセットを取得するには、process.env.PORTを読んでする必要があります。

let server = app.listen(process.env.PORT) 
var io = require('socket.io').listen(server) 
global.io = io 
+0

ログ: ポート58098すでに使用されています。 しかし、どのように! –

+0

@МаксЛолинそれは奇妙です!あなたは 'process.env.PORT'を使って他のコードを持っていますか? – dan

+0

var port = process.env.PORT || '3000'; let server = app.listen(port) console.log(サーバーリスン:$ {port}) var io = require( 'socket.io')listen(サーバー) global.io = io; –

関連する問題