0

アプリを実行していますが、socket.ioが見つからず、404が表示されます。

これはクライアントです:

<script src="http://game-test-1.herokuapp.com/socket.io/socket.io.js"></script>
<script>var socket = io.connect('http://game-test-1.herokuapp.com');</script>

これはサーバーです:

 var express = require('express'),
    routes = require('./routes'),
    user = require('./routes/user'),
    http = require('http'),
    path = require('path'),
    express = require("express"),
    app = express(),
    server = http.createServer(app),
    io = require('socket.io').listen(server);

server.listen(80);

ポートを変更して実行しようとしhttp://game-test-1.herokuapp.com:81/...ましたが、エラーが発生しました

socket.ioを正しくリンクするにはどうすればよいですか?

4

3 に答える 3

1

Herokuでは、アプリケーションがHerokuが選択したポートでリッスンする必要があります。PORTHerokuは、アプリケーションの起動時に、環境変数を介してこのポートをアプリケーションに通知します。他のポートでリッスンする場合、Herokuはそれを無視し、60秒後にアプリケーションを終了します。

ユーザーのブラウザは、HTTPトラフィックにポート80を使用し、HTTPSトラフィックに443を使用します。ユーザーのブラウザとアプリケーションの間にあるHerokuのルーティングレイヤーは、アプリケーション用に指定されたポートHerokuでアプリケーションにHTTPトラフィックを送信します。

于 2013-01-16T15:50:08.327 に答える
0

Heroku Dev Centerには、Herokuでsocket.ioを使用するためのガイドがあります。特に、次の設定が必要になります。

// assuming io is the Socket.IO server object
io.configure(function () { 
  io.set("transports", ["xhr-polling"]); 
  io.set("polling duration", 10); 
});
于 2013-01-16T15:19:00.747 に答える
-1

これは、Herokuが現時点でWebsocketをサポートしていないためです(私の知る限り)socket.ioを使用するには、xhrロングポーリングアプローチにフォールバックするように強制する必要があります。

于 2013-01-16T21:08:22.747 に答える