Как получить ресурс по его номеру?

Korchy

Новичок
Я сохраняю в базе данных указатель на сокет - сохраняется строка вида: Resource id #296. Потом я select-ом выбираю это поле и хочу с этим сокетом работать. Как получить по имеющемуся id ссылку на сам сокет?
 

AlexNemanov

Новичок
БД не может хранить тип ресурс, там могут быть: строки, числа, двоичные данные и т.д. а типа Ресурс на сокет - в БД нету.
 

Korchy

Новичок
БД не может хранить тип ресурс, там могут быть: строки, числа, двоичные данные и т.д. а типа Ресурс на сокет - в БД нету.
Да, я это понимаю. Но думал, раз есть id ресурса, неужели нельзя хотя бы тупо перебрать все ресурсы до совпадения id и найти нужный?
 

DIG

Новичок
Партнер клуба
А какой в этом смысл? Зачем это может понадобится? Так получилось, что скорее всего, никому в мире до вас это не было нужно.
 

Korchy

Новичок
А какой в этом смысл? Зачем это может понадобится? Так получилось, что скорее всего, никому в мире до вас это не было нужно.
Я хотел разделить по функциональности работу сокет-сервера на два процесса. Первый - быстрый, чисто прием/передача данных. Второй - медленный, обработка данных т.е. на основании полученных данных генерация отправляемых данных. Второй процесс по любому завязан на базу данных, поэтому и связь между процессами хотел сделать через таблицу бд. Второй процесс берет данные из первой колонки, обрабатывает и записывает во вторую. Первый же просто берет данные по мере их появления и отправляет клиенту.
 

WMix

герр M:)ller
Партнер клуба
ну и зачем второму знать "указатель на сокет"? работает и работает перебирает базу... отсылает то первый....
 

Korchy

Новичок
ну и зачем второму знать "указатель на сокет"? работает и работает перебирает базу... отсылает то первый....
id сокета показался удобным идентификатором позволяющим указать обоим процессам, на то что это данные для конкретного клиента. Если его не использовать придется городить массив в памяти, связывающий id сокета с id пользователя. Что видимо и придется сделать.
 

DIG

Новичок
Партнер клуба
Я хотел разделить по функциональности работу сокет-сервера на два процесса. Первый - быстрый, чисто прием/передача данных. Второй - медленный, обработка данных т.е. на основании полученных данных генерация отправляемых данных. Второй процесс по любому завязан на базу данных, поэтому и связь между процессами хотел сделать через таблицу бд. Второй процесс берет данные из первой колонки, обрабатывает и записывает во вторую. Первый же просто берет данные по мере их появления и отправляет клиенту.
А потом нужен будет третий процесс, который будет следить когда появились данные в таблице, а это полюбому запрос к БД, потом 4й процесс который будет следить чтобы правильно работали первые три, вы по моему совсем не туда копаете. Вы вообще что пишите? Чат? Ну погуглите чат на сокетах php иль чтото в этом духе.
 

Korchy

Новичок
АВы вообще что пишите? Чат?
Нет, это рабочее приложение. Пользователь отправляет данные, они на сервере обрабатываются и ответ отправляются пользователю. Обычных пост/гет запросов не хватает т.к. пользователь должен еще и без специальных запросов получать сообщения при определенных изменениях в базе. Поэтому делаю через сокеты.
 

WMix

герр M:)ller
Партнер клуба
Korchy
пользователь нажал на кнопочку, был вызван обработчик который в свою очередь создал фоновый процесс, а также подписал пользователя на получение сообщения по окончанию...
дальше каждый занимается своим делом, один ожидает когда появятся данные (он точно знает какие данные ему нужны) по получению шлет их пользователю, другой получил задачу делать, ему на столько пофиг для кого, мастер сказал значит надо!
 

Korchy

Новичок
Korchy
пользователь нажал на кнопочку, был вызван обработчик который в свою очередь создал фоновый процесс, а также подписал пользователя на получение сообщения по окончанию...
дальше каждый занимается своим делом, один ожидает когда появятся данные (он точно знает какие данные ему нужны) по получению шлет их пользователю, другой получил задачу делать, ему на столько пофиг для кого, мастер сказал значит надо!
Собственно все так и есть. Только фоновый процесс работает непрерывно. И если пользователь вошел в онлайн и наступил определенный момент (например подошел срок пробитый в базе с точностью до секунды) данные об этом должны быть отправлены пользователю тоже.
 

WMix

герр M:)ller
Партнер клуба
об этом должен знать процесс информирования... есть подписки пользователем на определенную инфу...
дальше цикл по событию, по пользователю...
 

Korchy

Новичок
об этом должен знать процесс информирования... есть подписки пользователем на определенную инфу...
дальше цикл по событию, по пользователю...
Ну вот я и хотел обойтись без дополнительных циклов по пользователю, все писать/читать напрямую в сокет. Теперь пришлось привернуть, вроде бы работает :)
 
Сверху