Re: Pqsocket not implemented in PHP

Поиск
Список
Период
Сортировка
От Nick Stone
Тема Re: Pqsocket not implemented in PHP
Дата
Msg-id 20050630105730.9D3E124D2D3@smtp.nildram.co.uk
обсуждение исходный текст
Ответ на Re: Pqsocket not implemented in PHP  (Volkan YAZICI <volkan.yazici@gmail.com>)
Ответы Re: Pqsocket not implemented in PHP  (Volkan YAZICI <volkan.yazici@gmail.com>)
Список pgsql-php
Hi,

Thanks for the response - though I'm a bit confused the FD is all that is
required for the select call - so I think what you're saying is that the
postgres socket open mechanism isn't the same in php as the postgres C
development library.

I say this because I've implemented this exact mechanism in C++ before
without problem so I'm really not quite following - sorry. Is it that PHP
implements the underlying socket mechanism in a different way? I guess I'm
not quite understanding could you give me a few more details of the PHP
mechanism.

Many thanks

Nick

-----Original Message-----
From: pgsql-php-owner@postgresql.org [mailto:pgsql-php-owner@postgresql.org]
On Behalf Of Volkan YAZICI
Sent: 30 June 2005 11:11
To: Nick Stone
Cc: pgsql-php@postgresql.org
Subject: Re: [PHP] Pqsocket not implemented in PHP

Hi,

On 6/30/05, Nick Stone <nick@harelane.com> wrote:
> I'm currently implementing a standalone app using php cli. Part of the
> app connects to Postgres and waits for a notification using the
> "Listen <tablename>" SQL. In the postgres C lib there is a function
> called "Pqsocket" which returns the file-descriptor of the socket
> connection to Postgres. With this I can use a simple select server to
> sleep on this interface and others in the application.
>
> Does anybody now of a patch to make this available under PHP or does
> the structure of PHP code effectively make this type approach impossible?

You can write a very simple patch returns socket FD using PQsocket().
But, AFAIC, it's not as simple as it seems to listen a socket using just its
FD value. As I understand from the source code, resource required by
socket_open() function has its own internal struct representation, which
means you need to be familiar with PHP internal data types and mechanism
before writing a patch. Therefore, it's not impossible to implement such a
feature, but, to be honest, it needs a hard work.

IMHO, you can enter a loop with pg_last_notice() by using usleep(). I won't
think it'd cost so much system resource for you.

Regards.

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend




В списке pgsql-php по дате отправления:

Предыдущее
От: Volkan YAZICI
Дата:
Сообщение: Re: Pqsocket not implemented in PHP
Следующее
От: Volkan YAZICI
Дата:
Сообщение: Re: Pqsocket not implemented in PHP