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

  • Автор темы Автор темы Korchy
  • Дата начала Дата начала

Korchy

Новичок
Я сохраняю в базе данных указатель на сокет - сохраняется строка вида: Resource id #296. Потом я select-ом выбираю это поле и хочу с этим сокетом работать. Как получить по имеющемуся id ссылку на сам сокет?
 
БД не может хранить тип ресурс, там могут быть: строки, числа, двоичные данные и т.д. а типа Ресурс на сокет - в БД нету.
 
БД не может хранить тип ресурс, там могут быть: строки, числа, двоичные данные и т.д. а типа Ресурс на сокет - в БД нету.
Да, я это понимаю. Но думал, раз есть id ресурса, неужели нельзя хотя бы тупо перебрать все ресурсы до совпадения id и найти нужный?
 
А какой в этом смысл? Зачем это может понадобится? Так получилось, что скорее всего, никому в мире до вас это не было нужно.
 
А какой в этом смысл? Зачем это может понадобится? Так получилось, что скорее всего, никому в мире до вас это не было нужно.
Я хотел разделить по функциональности работу сокет-сервера на два процесса. Первый - быстрый, чисто прием/передача данных. Второй - медленный, обработка данных т.е. на основании полученных данных генерация отправляемых данных. Второй процесс по любому завязан на базу данных, поэтому и связь между процессами хотел сделать через таблицу бд. Второй процесс берет данные из первой колонки, обрабатывает и записывает во вторую. Первый же просто берет данные по мере их появления и отправляет клиенту.
 
ну и зачем второму знать "указатель на сокет"? работает и работает перебирает базу... отсылает то первый....
 
ну и зачем второму знать "указатель на сокет"? работает и работает перебирает базу... отсылает то первый....

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

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