Thanks again, much appreciated!

Patrik Iselind

Den 2 feb. 2018 16:33 skrev "Henrik Johansson" <dahankz...@gmail.com>:

> Happy to help!
>
> The limit can be anything from the link above or something more advanced
> that Jesper suggested. The skeleton could be as outlined above however.
>
> On Fri, Feb 2, 2018, 15:40 mrx <patrik....@gmail.com> wrote:
>
>> On Fri, Feb 2, 2018 at 1:28 PM, Henrik Johansson <dahankz...@gmail.com>
>> wrote:
>>
>>> You can either use one of the existing other routers that have
>>> meddleware support or you could wrap your handlers in another handler much
>>> like this:
>>>
>>> handle("/foo",wrapHandler(rateLimiter, realHandler))
>>>
>>> func wrapHandler(limit *ARateLimiter, handler func(http.ResponseWriter,
>>> *http.Request)) func(http.ResponseWriter, *http.Request){
>>>       return func(w http.ResponseWriter, r *http.Request) {
>>>                    limit.Aquire() //Or however you use the limiter
>>>                    handle(w,r)
>>>      }
>>> }
>>>
>>> Very rudimentary and simplified but could perhaps work. You can wrap any
>>> handler in the same way with either a shared limiter or one per call or any
>>> combination.
>>>
>>
>> Feels like your limit parameter is simply a semaphore to me. I'll try
>> that for now. Thanks a lot for your help, it was most illuminating!
>>
>> // Patrik
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to