2

nodejs ベースの IRC Web クライアント ( https://github.com/martynsmith/node-ircおよび socket.io を使用) を作成しようとしていますが、いくつか問題があります。

サーバーを起動して初めて接続すると、すべてが正常に機能し、クライアントは「登録済み」イベントを取得し、その後すべてが機能します。

ページを更新すると、サーバーは引き続き init イベント (サーバーとニックネームを含む) を取得しますが、IRC クライアントは接続しません (4000 ミリ秒後に再接続を試みますが、毎回「接続が 'close' イベントを取得しました」というメッセージが表示されます)。 .

コード:

クライアント側:

var socket;
socket = io.connect('http://localhost:8000');
...
socket.emit('init', { nick: $(".popup #nume").val(), channels: channels });

サーバ側:

io = require('socket.io').listen(8000);

irc = require('irc');

console.log("Started server..");

io.sockets.on('connection', function(socket) {
        socket.on('init', function(data) {
                console.log('io connection with id ' + socket.id);
                console.log('socket length: ' + sockets.length);

                var first, i, good, new_message;

                sockets.push(socket);

                socket.nickname = data.nick;
                socket.channels = data.channels;
                first = 0;

                console.log('Init from : ' + socket.nickname + ' ' + socket.channels);

                socket.client = new irc.Client('localhost', socket.nickname, {
                        port: 6667,
                        debug: true,
                        showErrors: true,
                        autoRejoin: true,
                        autoConnect: false,
                        channels: socket.channels,
                        secure: false,
                        retryDelay: 4000,
                        retryCount: 1000
                });

                socket.client.connect();

                socket.client.addListener('registered', function(message) {
                        socket.client.list();

                        console.log('Registered to irc');
                });

ログ:

io connection with id oFrdaN8WhQAE4mEh62uI
socket length: 1
Init from : test 
8 Jun 04:33:50 - SEND: nickserv :ghost test
8 Jun 04:33:50 - SEND: NICK test
8 Jun 04:33:50 - SEND: USER nodebot 8 * :nodeJS IRC client
Netrror: Error: write EPIPE
8 Jun 04:33:50 - Connection got "close" event
8 Jun 04:33:50 - Disconnected: reconnecting
8 Jun 04:33:50 - Waiting 4000ms before retrying

したがって、問題は、サーバーに接続しても、IRC サーバーに接続できないことです (「Connection got 'close' event」メッセージを受け取るたびに)。

4

0 に答える 0