Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.05.2015, 21:55
Аспирант
Отправить личное сообщение для katamason Посмотреть профиль Найти все сообщения от katamason
 
Регистрация: 18.06.2011
Сообщений: 75

Не могу запустить чат
Здравствуйте. Пытался написать что то похожее на чат, использую руководства и все что возможно, но не могу найти ошибку. Помогите найти ее, я только начал копаться в ноде, и все стало плохо(
Вышло 2 файла chat.html
<html>
<head>
    <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <style>
        #chatWrap {
            float:left;
            border:1px solid green;
        }
        #contentWrap {
            display:none;
        }

    </style>

    <script type="text/javascript">
        $(document).ready(function() {
        var chat = $('#chat');
        var  messageForm = $('#send-message');
        var messageBox = $('#message');
        var nickForm = $('#setNick');
        var nickError = $('#nickError');
        var nickBox = $('#nickname');
        var users = $('#users');

        var socket = io.connect();

        nickForm.submit(function(e) {
             socket.emit('new user',nickBox.val(),function(data) {
                 if(data) {
                     $('#nickWrap').hide();
                     $('#contentWrap').show();
                 } else {
                     nickError.html('This user name is taken')
                 }

             } );
            nickBox.val('');
        });



        messageForm.submit(function(){
            socket.emit('send message', messageBox.val());
            messageBox.val('');
            return false;
        });


        socket.on('new message', function(data){
            chat.append($('<li>').text(data));
        });

     


            socket.on('usernames',function(data) {
                html = '';
                for (i=0;i<data.length; i++) {
                    html += data[i] + '<br>';
                }
                users.html(html +'<br>');
            });

        } )
    </script>
</head>
<body>
<div class="nickWrap">
    <p>Enter user name</p>
    <p id="nickError"></p>
    <form id="setNick">
        <input id="nickname" value="" >
        <button>Send</button>
    </form>
</div>
<!--
nickWrap end
-->
<div id="contentWrap">
 <div id="chatWrap">
<ul id="chat"></ul>
<form action="" id="send-message">
    <input id="message"  size="35" value="" >
    <button>Send</button>
</form>
</div>
    <div id="users"></div>
</div>
<!--
contentWrap end
-->
</body>
</html>


и мой app.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var nicknames = [];


app.get('/', function(req, res){
    res.sendFile(__dirname+'/chat.html');
});

io.on('connection', function(socket){
    socket.on('send message', function(msg){
        io.sockets.emit('new message',msg);
        console.log('message: ' + msg);
    });


});

io.on('new user',function(data, callback) {
    if(nicknames.indexOf(data) != -1) {
        callback(false);
    } else {
        callback(true);
        socket.nickname = data;
        nicknames.push(socket.nickname);
        io.sockets.emit('usernames',nicknames)
    }
});

http.listen(3000, function(){
    console.log('listening on *:3000');
});


Но я не могу запустить ничего толкового ((
Ответить с цитированием
  #2 (permalink)  
Старый 20.05.2015, 22:42
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Так а какие ошибки выдаёт?
Ответить с цитированием
  #3 (permalink)  
Старый 20.05.2015, 22:49
Аспирант
Отправить личное сообщение для katamason Посмотреть профиль Найти все сообщения от katamason
 
Регистрация: 18.06.2011
Сообщений: 75

Ошибок то нету, вот щас по кусочкам отделяю эту багадельню, и буду внимательно разбираться
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2015, 00:05
Аспирант
Отправить личное сообщение для katamason Посмотреть профиль Найти все сообщения от katamason
 
Регистрация: 18.06.2011
Сообщений: 75

С ошибками вроде разобрался, прошу прощения. Но нащел одну неясность вот в этих местах. До алерта доходит массив, только он не записывается в dom <div id users> остается пустым, как будто что то его обновляет.. Подскажите почему ?
socket.on('usernames',function(data) {
             var  html = '';
                for (i=0;i<data.length; i++) {
                    html += data[i] + '<br>';
                }
                alert(html); // t<br> tt<br ttt<br>t<br>
                $('#users').html(html);
            });


socket.on('new user',function(data, callback) {
        if(nicknames.indexOf(data) != -1) {
            callback(false);
        } else {
            callback(true);
            socket.nickname = data;
            nicknames.push(socket.nickname);
            io.sockets.emit('usernames',nicknames)
        }
    });

Последний раз редактировалось katamason, 22.05.2015 в 00:09.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу запустить функцию по onclick Sadist_dead Элементы интерфейса 3 26.11.2011 16:35
Не могу запустить исполняемый javascript-код trikadin Сайт Javascript.ru 2 01.11.2011 13:22
Не могу запустить всплывающее окно не по клику. Danya24rus Общие вопросы Javascript 0 12.08.2011 13:41
Как написать свой чат mycoding Оффтопик 2 14.08.2010 21:51
не могу запустить ни оди ява скрипт NickTriada Javascript под браузер 7 17.08.2009 13:25