2017-08-07 8 views
0

私の意図は、Heroku上に簡単なWebアプリケーションをデプロイすることです。 私はこのアプリケーションをローカルにホストしていましたが、今はHerokuを使ってオンラインにしています。非特定のHerokuデプロイメントエラー(Node.js、socket.io)

アプリを開くときに、単に「アプリケーションでエラーが発生し、ページを配信できませんでした」と表示されます。

クライアント側コード:

var socket; 
socket = io.connect("https://fakename.herokuapp.com"); 

サーバー側のノードはエラー番号やアプリが動作しない理由がないヒントがありません

は、ここに関連するすべてのコードです.jsコード:

var express = require('express'); 
var Victor = require('victor'); 

var app = express(); 

var server = app.listen(process.env.PORT || 3000, listen); 

function listen() { 
    var host = server.address().address; 
    var port = server.address().port; 
    console.log("server is up"); 
} 

app.use(express.static('public')); 

var io = require('socket.io')(server); 

もちろんProcfileとpackage.jsonが含まれています。

+0

「heroku logs」と入力すると、herokuアプリインスタンスで発生したエラーメッセージがログアウトされます。 – supergentle

+0

申し訳ありませんが、これについては言及しませんでしたが、ビルドログにエラーはありませんでした。唯一のエラーはNPM_CONFIG_LOGLEVEL =エラー – Canatron

答えて

0

あなたはsocket.ioインスタンスを新規作成するときに間違ったインスタンスを渡していると思います。これは、公式ドキュメントhttps://socket.io/docs/からだと私は私の現在のプロジェクトのために使用しています。この

const app = express(); 
const http = require('http').Server(app); 
const io = socket(http); 

... 

io.on("connection", socket=>()=>{...}); 
http.listen(process.env.PORT || 3000); 

を試してみてください。 また、実際に私はherokuインスタンスでWebソケットサービスを実行しようとしていません。しかし、herokuは基本的に顧客に自動スケーリングサービスを提供します。これは、アプリケーションがいくつかの負荷分散によって複数のサーバー上で動作できることを意味します。これによりwebsocketが正常に動作しなくなる可能性があります。この場合、通常はスティッキセッションを実装することをお勧めします。上記のコードを試してください。また、それが動作しない場合は教えてください。

+0

で、何も変更されていませんでした。動作しません。 – Canatron

関連する問題