1

これが機能しない理由がわかりません:

以下を含む sample.js があります。

var http = require('http');
var socket = require('socket.io');
var express = require('express');

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

io.sockets.on('connection', function(client) {
    console.log('Client Connected...');

    client.emit('messages', {hello: 'world'});
});

server.listen(8080);

以下を含む index.html ページがあります。

<!DOCTYPE html>
<html>
    <head>
        <script src="socket.io.js"></script>

        <script>
            var server = io.connect('http://mydomain:8080');
            server.on('messages', function(data) {
                alert(data.hello);
            });         
        </script>
    </head>
    <body>
    </body>
</html>

更新: socket.io-client.js ライブラリを使用している場合、http://mydomain:8080ページに移動すると、「info - unhandled socket.io url」が表示されます。

誰かが私が間違っているかもしれないことを指摘できますか?

4

1 に答える 1

3

サーバーは、送信するように指示したことがないため、送信するindex.htmlことはありません。次のようなものが必要です:

app.get('/', function(req, res) {
  res.sendfile('index.html');
});

index.htmlがアプリのルート レベルにあると仮定します。または、より一般的には次のようになります。

app.use(express.static(__DIRNAME+'/public'));

次に、index.html(スタイルシートなどの他の静的ファイルとともに)publicアプリのサブディレクトリに配置します。

于 2012-08-07T03:27:38.867 に答える