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

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

Закрытая тема
Опции темы Опции просмотра
Старый 10.04.2017, 19:05   #1
Soba
Senior Member
 
Регистрация: 02.05.2014
Сообщений: 624
Бабло: $253350
По умолчанию Постоянный коннект к 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,741
Бабло: $1695125
Отправить сообщение для Hector с помощью Jabber
По умолчанию

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

Согласен с 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,741
Бабло: $1695125
Отправить сообщение для 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
Сообщений: 624
Бабло: $253350
ТС -->
автор темы ТС По умолчанию

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

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

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

как говорится "будем посмотреть" как сделать слушатель на сокетах.
Soba вне форума  
Старый 11.04.2017, 11:14   #6
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,741
Бабло: $1695125
Отправить сообщение для 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
Сообщений: 624
Бабло: $253350
ТС -->
автор темы ТС По умолчанию

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

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

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

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

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

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