Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2018, 13:02   #1
kiberchainik
Новичок
Джуниор
 
Регистрация: 10.05.2018
Сообщений: 1
Восклицание создание чата на nodejs

здравствуйте, надеюсь я верно выбрал раздел, так вот ...
на хостинге установили node открыли порт 3000 порт прослушивается, при обращении lptf.it:3000 или http://185.53.160.215:3000/ выводится сообщение Hello Node.js Server!. Казалось бы все хорошо! но! я хочу дальше создание чата, и в корне сайта создаю файлик (сервер) с кодом (пример с интернета, я новичОк):
Код:
var express = require('express');
    var app = express();
    app.set('port', process.env.PORT || 3000);
    app.set('host', process.env.HOST || 'localhost');
    
    var logger = require('log4js').getLogger();
    var server = require('http').Server(app);
    var io = require('socket.io')(server);
    var port = 3000;


     app.use(express.static('/home/urlyogyj/public_html/views/chat.php'));
    app.get('/chat.php', function(req,res){
    res.sendFile('/home/urlyogyj/public_html/views/chat.php');
    });

    app.use('/fonts', express.static('/home/urlyogyj/node_modules/uikit/src/fonts/'));

     app.get('/socket.io.js', function(req,res){
    res.sendFile('/home/urlyogyj/node_modules/socket.io-client/dist/socket.io.js');
    });

    app.get('/jquery.js', function(req,res){
    res.sendFile('/home/urlyogyj/node_modules/jquery/dist/jquery.min.js');
     });

     app.get('/uikit.js', function(req,res){
    res.sendFile('/home/urlyogyj/node_modules/uikit/dist/js/uikit.min.js');
    });

    app.get('/uikit.css', function(req,res){
    res.sendFile('/home/urlyogyj/node_modules/uikit/dist/css/uikit.almost-flat.min.css');
    });

    app.get('/animate.css', function(req,res){
    res.sendFile('/home/urlyogyj/node_modules/animate.css/animate.min.css');
    });

    function usersCountToLog(){
    logger.info('User count: '+io.engine.clientsCount);
     }

     io.on('connection', function(socket){

    function setName(name){
        if(name != undefined && name != ''){
            socket.session = {};
            socket.session.userName = name;
            socket.session.address = socket.handshake.address; 
            socket.session.id = socket.id;          
            
            socket.broadcast.emit('newUser', socket.session);
            socket.emit('userName', socket.session);
            

            socket.emit('userList', io.length);

            logger.info('User '+socket.session.userName+' join from IP: '+socket.session.address);
            usersCountToLog();
            var clients = io.sockets.connected;


            var clientsList = {}
            for(var key in clients){
                if(clients[key].session)
                    clientsList[key] = clients[key].session;
            }
            
            socket.emit('clientsList', clientsList);
            console.log(clientsList);
        }
        else
            socket.emit('setName');
    }
    setName(null);
    socket.on('setName', function(name){
        if(name.length > 0)
            setName(name);
        else
            socket.emit('setName');
    });

    socket.on('message', function(msg){
        if(socket.session){
            if(socket.session.userName === null || socket.session.userName == '' || socket.session.userName == undefined){
                socket.emit('setName');
            }else{
                logger.trace('-----------');
                logger.trace('User: ' + socket.session.userName + ' |  
    Message: ' + msg);
                logger.trace('====> Sending message to other chaters...');

                socket.broadcast.emit('messageFromClients', msg,  
    socket.session.userName);
                socket.emit('messageToClients', msg,      
    socket.session.userName);
            }
        }
    });

    socket.on('disconnect', function(){
        if(socket.session){
            io.sockets.emit('userDisconnected', socket.session);
            logger.info('User '+socket.session.userName+' left chat');
            usersCountToLog();
        }
    });
    });

    console.log('server started, tipa...');
как видно по коду прописал адреса к файлам, они верные, в консоле перезапускаю сервер командой

node /home/urlyogyj/public_html/app.js screen
после этого обновляю адрес lptf.it:3000 и все равно без перемен, выводит Hello Node.js Server!
я не понимаю почему, и где и как можно отслеживать ошибки.
чего вообще хочу добиться:
до авторизации какого-либо пользователя чат не нужен, как только пользователь авторизовывается на сайте, открывается сокет и на сайте для всех остальных пользователей и гостей видна надпись что тот авторизованный пользователь в сети, и напротив его логина появляется кнопка создать чат, но только для авторизованых пользователей, при нажатии на нее открывается окошко чата, как на сайте вконтакте или фейсбуке, у получателя сообщения есть блок со списком все кто прислал ему сообщение, получатель нажимает на автора и пользователи начинают общение, каждый диалог с новым пользователь должен запускать свое окошко чата. причем этот чат существует на всех страницах сайта. после выхода пользователя через кнопку выход или закрытии вкладки сокет закрывается, а все сообщения записываются в базу данных!
kiberchainik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание чата NellyM Фриланс 5 08.12.2016 16:41
Создание не многопользовательского чата Slash2999 Общие вопросы .NET 0 14.11.2010 20:25
Создание интернет чата. Alex2009 Работа с сетью в Delphi 3 12.05.2010 15:22
Создание icq-чата Raptor-new Помощь студентам 2 01.05.2010 19:04