1

私はsocket.ioをappディレクトリに(expressとともに)インストールし、index.htmlファイルに次のようにリンクしました:

<script src="http://localhost:8080/node_modules/socket.io/lib/socket.io.js"></script>

このリクエストで 404 を取得します。リンクを再確認しましたが、問題ありません。node.js アプリはポート 8080 で実行されますが、なぜ機能しないのかわかりません

更新: どうやらそれは Express と関係があるようです。それを使用していないときは、その問題はなく、socket.io は正常に動作します。これは私のサーバーファイルのセットアップです:

var express = require('express'),
    http = require('http');

var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);

app.listen(8000);

これがフロントエンドです:

<script src="/socket.io/socket.io.js"></script>
<script src="js/vendor/jquery-1.8.3.min.js"></script>
<script>
  var socket = io.connect('http://localhost:8000');

また、jQueryをGoogle CDNからローカルに切り替えましたが、それも見つかりません

4

4 に答える 4

7

socket.ioバックエンドで外部接続をリッスンしていることを確認してください。基本的に、socket.io にはsocket.io.jsファイルを提供する内部メソッドがあるためrequire ('socket.io').listen(app)、アプリへのルートを定義する前に、socket.io を配置する必要があります。

正しい URL は次のとおりです。

<script src="/socket.io/socket.io.js"></script>

ランデュネルの言うとおり。

したがって、構成は次のようになります。

Express 3.x の更新:

var express = require('express'),
    http = require('http');

var app = express();
var server = http.createServer(app).listen(8000);

require('socket.io').listen(server);  // Your app passed to socket.io

サーバ側

<script src="http://localhost:8000/socket.io/socket.io.js"></script>
于 2013-01-09T09:16:12.560 に答える
3

そのパス全体を使用しないでください。プロジェクトのディレクトリ構造に対応していません。使うだけ

<script src="http://localhost:8080/socket.io/socket.io.js"></script>

ちなみに、プロジェクト内の他のサービスだけでなく、socket.io も 8080 でリッスンしていることを確認してください。

于 2013-01-08T16:47:58.197 に答える
0

道はランドネルから。

<script src="http://localhost:8080/socket.io/socket.io.js"></script>

ファイルを直接リンクすると、ファイルの代わりに「Welcome to socket.io」メッセージを取得できます。リンクできる CDN socket.io.js ファイルもありますが、これは古く、新しいプロジェクトではうまく動作しないため、お勧めしません。

于 2013-01-09T00:35:35.113 に答える
0

JS ファイルをhttp://localhost:8080/javascripts/socket.io.js、基本的にはpublicフォルダーの JavaScript ディレクトリに配置してみてください。

于 2013-01-08T16:47:37.863 に答える