12

私はsocket.ioでNode.jsを試しています

これが私のシナリオです。私はubuntu 12.04ユーザーで、デスクトップにフォルダーppがあります

その中に私はサーバーファイルを入れています。 app.js

内容はこちら

var fs = require('fs')
    , http = require('http')
    , socketio = require('socket.io');

var server = http.createServer(function(req, res) {
    res.writeHead(200, { 'Content-type': 'text/html'});
    res.end(fs.readFileSync(__dirname + '/index.html'));
}).listen(8080, function() {
    console.log('Listening at: http://localhost:8080');
});

socketio.listen(server).on('connection', function (socket) {
    socket.on('message', function (msg) {
        console.log('Message Received: ', msg);
        socket.broadcast.emit('message', msg);
    });
});

同じフォルダーに別のファイル index.html があります

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        $(function(){
            var iosocket = io.connect();

            iosocket.on('connect', function () {
                $('#incomingChatMessages').append($('<li>Connected</li>'));

                iosocket.on('message', function(message) {
                    $('#incomingChatMessages').append($('<li></li>').text(message));
                });
                iosocket.on('disconnect', function() {
                    $('#incomingChatMessages').append('<li>Disconnected</li>');
                });
            });

            $('#outgoingChatMessage').keypress(function(event) {
                if(event.which == 13) {
                    event.preventDefault();
                    iosocket.send($('#outgoingChatMessage').val());
                    $('#incomingChatMessages').append($('<li></li>').text($('#outgoingChatMessage').val()));
                    $('#outgoingChatMessage').val('');
                }
            });
        });
    </script>
</head>
<body>
Incoming Chat: <ul id="incomingChatMessages"></ul>


<input type="text" id="outgoingChatMessage">
</body>

次のようなノードを使用してapp.jsを実行しようとしているとき

 node app.js 

エラーが発生しています

 warn  - error raised: Error: listen EADDRINUSE

ドキュメントを調べたところ、ポートがビジーであることがわかったので、システムを再起動しましたが、それでも同じエラーが発生します。

私が間違っていることを教えてください。

4

5 に答える 5

1

クライアント側のホストに接続していないように見えます。

var iosocket = io.connect('http://localhost:8080');
于 2013-02-01T13:32:25.607 に答える
1

サーバーに接続していません。これは間違っています:

var iosocket = io.connect();

これは正しいです:

var iosocket = io.connect('http://localhost:8080');

また、ポート 8080 はサーバーで「http-proxy」によって使用されています。別のポートを試してください。

于 2013-02-01T16:09:48.360 に答える