On Thursday, April 21, 2016 at 7:24:35 AM UTC+2, Nicolas Noble wrote:
>
> The other languages (Ruby, Node.js, Python, C#, ...) don't have that 
> issue, because they all have frameworks that are working properly from the 
> command line. Right now, in order to run a gRPC python server, you can 
> properly start a python daemon with your code in there. Node has everything 
> built in for running servers without any front end. Ruby has been doing 
> this natively as well for a long time.
>
> Unless somebody shows us otherwise, only PHP doesn't have any proper 
> support to run a naked daemon. All the options that we've seen or that 
> people have shown to us are toys or prototypes that aren't suitable for 
> production usage. Basically, I'm challenging your "it is increasingly 
> common to write standalone and daemonized PHP processes" and ask for proper 
> examples and documentation that aren't flagged with warning labels such as 
> "DO NOT USE FOR PRODUCTION".
>

I think the right solution here could be to provide gRPC as a SAPI, that 
means as a standalone binary "php-grpc server.php" much like "php-fpm", it 
would start a HTTP/2 webserver and upon receiving the requests, create 
individual PHP requests to server.php maybe with appropriate context 
variables in $_SERVER/$_POST. This would keep the sharded nothing PHP 
principle while allowing the C based gRPC server to handle the 
long-livedness and streaming. But this might be to complex for the benefit.

A workaround could be to write a simple Go based proxy that accepts 
requests over gRPC/HTTP2 and sends them out to a php-fpm based backend 
using a Go fastcgi client library. 

>
> On Wed, Apr 20, 2016 at 7:55 PM, <rokcl...@gmail.com <javascript:>> wrote:
>
>> Nicholas,
>>
>> I'm also very interested in finding a way to make this work.  I do 
>> recognize the challenges you've outlined below as well as the fact that the 
>> PHP CLI server isn't suitable for production use.  How do the other 
>> language integrations for gRPC handle this?  I would think that Python 
>> would suffer from the same sort of issues with its SAPIs (mod_wsgi, etc).  
>> Or does gRPC only support naked Python processes as well?
>>
>> Looking at this example 
>> https://github.com/grpc/grpc/blob/release-0_13/examples/python/route_guide/route_guide_server.py
>>  
>> - PHP is capable of performing the same type of socket listening operations 
>> going on under the hood here.  It is increasingly common to write 
>> standalone and daemonized PHP processes like this one.  Whether or not PHP 
>> will natively support HTTP/2 features is of course another question.
>>
>> Thanks,
>>
>> Brian
>>
>> On Wednesday, January 27, 2016 at 9:14:54 PM UTC-5, Nicolas Noble wrote:
>>>
>>> There are several problems with the idea of a gRPC server in PHP, and we 
>>> have no plans for that.
>>>
>>> Basically, the only way it would work, is if you run PHP "naked", 
>>> without its typical nginx or apache frontend. You can't serve a long-lived 
>>> streaming RPC from a PHP page using typical settings. The page will timeout 
>>> very quickly. You could theoretically restrict yourselves to server unary 
>>> RPCs only, or have an arbitrary duration on "streaming" RPCs, but that 
>>> wouldn't be "gRPC" anymore. And even then, there's no proper HTTP/2 support 
>>> in PHP at the moment. With the typical model of having a frontend that'll 
>>> forward the requests to PHP processes spawned on the fly, you wouldn't have 
>>> access to the full HTTP/2 stream, which is required to properly server gRPC 
>>> requests.
>>>
>>> For more on that, I invite you to research how to serve websockets from 
>>> PHP. Probably all of the solutions you'll find will be by running a naked 
>>> PHP process, without Apache. That isn't the typical way people want to use 
>>> PHP. So a gRPC server in PHP would be fairly useless as it'd require you to 
>>> run it in a very atypical deployment environment.
>>>
>>> On Wed, Jan 27, 2016 at 2:23 PM, <stephen...@bigcommerce.com> wrote:
>>>
>>>> Hey all—
>>>>
>>>> It appears as of right now you can only create CLIENTS in PHP, but not 
>>>> servers. I was wondering what the technical blockers behind this were and 
>>>> if it's on the roadmap for a future release?
>>>>
>>>> Thanks!
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "grpc.io" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to grpc-io+u...@googlegroups.com.
>>>> To post to this group, send email to grp...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/grpc-io/412dccb6-836e-4486-ab19-34701bec0562%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/grpc-io/412dccb6-836e-4486-ab19-34701bec0562%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "grpc.io" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to grpc-io+u...@googlegroups.com <javascript:>.
>> To post to this group, send email to grp...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/grpc-io/954a4480-dc8f-42c6-ab68-44d884634e37%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/954a4480-dc8f-42c6-ab68-44d884634e37%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To post to this group, send email to grpc-io@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/36b6ae54-b943-46db-99b2-f4e923d3057b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to