私が理解しているように、http://socket.io/#how-to-useから、node.jsはサーバ上のsocket.ioファイルを自動的に提供します。Socket.ioがNode.jsサーバによってサービスされていない
npm install socket.io
とsocket.ioをインストールしました。サーバールートの1つ上のレベルのnode_modules
にあります。
server.js:
var static = require('./plugins/node-static');
var socketIO = require('socket.io');
var clientFiles = new static.Server('./client');
var http = require('http');
httpServer = http.createServer(function (request, response) {
request.addListener('end', function() {
clientFiles.serve(request, response);
});
}).listen(8253);
var webSocket = socketIO.listen(httpServer);
webSocket.on('connection', function(client) { .....
のindex.html:サーバの起動
<html>
<head>
<title>Chat</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.5.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var webSocket = new io.Socket('localhost', { port: 8253 });
webSocket.connect(); .......
が正常に動作しますが、index.htmlをを開くときに、私は次のエラーが表示されます
GET http://localhost:8253/socket.io/socket.io.js 404 (Not Found)
Uncaught ReferenceError: io is not defined :8253/:25
アイデア?
"サーバールートの1レベル上のnode_modulesに存在することがわかります。" 「サーバールート」とはどういう意味ですか?おそらく、Apacheの痕跡と混同しないでください。 NPMによってインストールされたモジュールは、NPMリポジトリに格納されています。これらのモジュールは、プロジェクトのメイン・ノード・スクリプトに関連する必要はありません。 'require( 'socket.io')が成功した場合は、インストールが正常で、問題がコード内にあることを示します。 – Kos