Постоянный коннект к mysql + socket io - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD63551.7781
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 10.04.2017, 19:05   #1
Soba
Senior Member
 
Регистрация: 02.05.2014
Сообщений: 628
Бабло: $257430
По умолчанию Постоянный коннект к mysql + socket io

Доброго дня сила гоуфака!

Подскажите пожалуйста как через сокеты организовать постоянный коннект к базе данных.

Мне необходимо в реальном времени показывать регистрации новых пользователей, участвующих в турнире.

Пока что я использую setInterval, но не думаю, что это правильный вариант.

Сервер:

PHP код:
io.on('connection', function (socket) { 

    
setInterval(function() { 
    
db.query('SELECT * FROM tournament WHERE status = 0 ORDER BY id DESC', function(errrowsfields) {
            
        if(
rows.length >= 1){

            
            var 
reg '';
            for (var 
0rows.lengthi++) {
                
reg += escape(rows[i].name)+'<br/>';
            }

            
io.emit('reg', { regreg });

        }else {
            var 
reg 'no regs';
            
io.emit('reg', { regreg });
        }

    });
    }, 
1000);

}); 
Как видно setInterval каждую секунду тянет данные с мускула и отправляет данные по сокетам на клиент.
Soba вне форума  
Старый 10.04.2017, 22:08   #2
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Шарик ты балбес. То что ты делаешь, для этого сокеты не нужны. Обычный ajax справится. Ты мозг перестрой под сокеты сперва.
Блин все nodejs кодеры упороты по ходу, без обид.
Ты просто храни в переменной свои данные или в массиве. Короче трудно понять что тебе надо и зачем вообще ты задаешь такие вопросы. Ты раньше на php кодил? Тут другое мышление нужно.
Hector вне форума  
Старый 11.04.2017, 10:42   #3
Lord_Alfred
Хитрожопый
 
Аватар для Lord_Alfred
 
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
По умолчанию

Согласен с Hector, у тебя мышление как-то не под сокеты заточено.

Почитай получше как они работают, если мне не изменяет память - тебе надо сделать "слушателя" - и получишь связь не "браузер дергает данные с сервера", а "сервер сам отправляет данные в браузер"
__________________
Мой блог в Telegram: https://tglink.ru/Lord_Alfred
Тесты производительности VPS: https://tglink.ru/VPSBench - присылайте с рефкой
Lord_Alfred вне форума  
Старый 11.04.2017, 10:57   #4
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Цитата:
Сообщение от Soba
Мне необходимо в реальном времени показывать регистрации новых пользователей, участвующих в турнире.
1) При старте серверного node js приложения тебе нужно взять с базы ОДИН раз всех юзеров и отправить эти данные в браузеры онлайн юзеров. (это вообще можно делать ajax-ом)
2) Далее на клиенте тебе нужно будет отправлять на сервер просто имена юзеров а сервер будет транслировать уже эти имена всем остальным. На сервере ты можешь просто хранить эти имена в массиве ну и insert в базу.
3) Какие там еще тараканы могут быть я хз. Может еще и обычные ajax запросы будут нужны.

Можно вообще перестроить приложение так что сокет сервер не будет лазить в базу. Для этого добавляй в базу ajax запросом.

Тебе реально нужно разобрать примеры чата, игр на сайте socket.io и перестроить свои мозги.
Hector вне форума  
Старый 11.04.2017, 11:09   #5
Soba
Senior Member
 
Регистрация: 02.05.2014
Сообщений: 628
Бабло: $257430
ТС -->
автор темы ТС По умолчанию

спасибо за конструктивную критику.
я вообще не кодер и только учусь в свободное время (хобби)

на ajax + php я уже делал и хочу вообще не использовать пых.

я делал примерно как пишет hector, но дело в том что сокеты один раз берут данные с бд и шлют их в клиент, далее чтобы отобразить актуальный список юзеров надо обновлять страницу браузера.

как говорится "будем посмотреть" как сделать слушатель на сокетах.
Soba вне форума  
Старый 11.04.2017, 11:14   #6
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

Soba, попробуй вообще без базы сделать. Чтобы данные туда-сюда бегали. Открой 2-3 браузера и смотри чтобы они (данные) в реальном времени обновлялись. Вот нагуглил тебе пример http://stackoverflow.com/questions/8...sing-socket-io
Hector вне форума  
Старый 11.04.2017, 11:19   #7
Soba
Senior Member
 
Регистрация: 02.05.2014
Сообщений: 628
Бабло: $257430
ТС -->
автор темы ТС По умолчанию

без бд не вариант, мне надо хранить данные по турниру, победителям и т.д.
Soba вне форума  
Старый 11.04.2017, 13:59   #8
xanxy
Senior Member
 
Регистрация: 18.08.2010
Сообщений: 360
Бабло: $66120
По умолчанию

Цитата:
Сообщение от Hector Посмотреть сообщение
Цитата:
Сообщение от Soba
Мне необходимо в реальном времени показывать регистрации новых пользователей, участвующих в турнире.
1) При старте серверного node js приложения тебе нужно взять с базы ОДИН раз всех юзеров и отправить эти данные в браузеры онлайн юзеров. (это вообще можно делать ajax-ом)
2) Далее на клиенте тебе нужно будет отправлять на сервер просто имена юзеров а сервер будет транслировать уже эти имена всем остальным. На сервере ты можешь просто хранить эти имена в массиве ну и insert в базу.
3) Какие там еще тараканы могут быть я хз. Может еще и обычные ajax запросы будут нужны.

Можно вообще перестроить приложение так что сокет сервер не будет лазить в базу. Для этого добавляй в базу ajax запросом.

Тебе реально нужно разобрать примеры чата, игр на сайте socket.io и перестроить свои мозги.
Тараканы возникнут если форкать сервер. Проще все же с базы дергать переодически.
xanxy вне форума  
Старый 11.04.2017, 14:09   #9
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861015
По умолчанию

Цитата:
Сообщение от Soba Посмотреть сообщение
на ajax + php я уже делал и хочу вообще не использовать пых.
а вот этот велосипед далеко не поедет
веломан вне форума  
Старый 11.04.2017, 14:10   #10
Soba
Senior Member
 
Регистрация: 02.05.2014
Сообщений: 628
Бабло: $257430
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от веломан Посмотреть сообщение
Цитата:
Сообщение от Soba Посмотреть сообщение
на ajax + php я уже делал и хочу вообще не использовать пых.
а вот этот велосипед далеко не поедет
вот именно, из за этого я вникаю в нод и сокеты.
Soba вне форума