Maison >développement back-end >Golang >Comment limiter la bande passante HTTP en Go : une approche personnalisée ?

Comment limiter la bande passante HTTP en Go : une approche personnalisée ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 03:45:30209parcourir

How to Limit HTTP Get Bandwidth in Go: A Custom Approach?

Comment limiter HTTP pour obtenir la bande passante dans Go

En tant que novice en Go, vous pouvez rencontrer des scénarios dans lesquels vous devez contrôler la bande passante consommée par vos requêtes http.Get(). Une solution populaire consiste à utiliser un package tiers tel que mxk/go1/flowcontrol. Cependant, pour une compréhension plus approfondie des mécanismes sous-jacents, cet article propose une approche personnalisée simple.

Pour limiter la bande passante, nous devons restreindre la vitesse à laquelle les données sont lues à partir du corps de la réponse HTTP. Dans l'extrait de code fourni :

<code class="go">package main

import (
    "io"
    "net/http"
    "os"
    "time"
)

var datachunk int64 = 500       //Bytes
var timelapse time.Duration = 1 //per seconds

func main() {
    responce, _ := http.Get("http://google.com")
    for range time.Tick(timelapse * time.Second) {
        _, err := io.CopyN(os.Stdout, responce.Body, datachunk)
        if err != nil {
            break
        }
    }
}</code>

Nous définissons deux variables :

  • datachunk détermine la taille des morceaux de données lus à partir du corps de la réponse en octets.
  • timelapse spécifie l'intervalle auquel nous lisons les morceaux de données.

La fonction principale effectue les étapes suivantes :

  1. Envoie une requête HTTP GET et stocke la réponse dans la réponse variable.
  2. Entre dans une boucle infinie qui attend le timelapse spécifié.
  3. Dans la boucle, il lit un morceau de données du corps de la réponse à l'aide de io.CopyN(). La taille du morceau est définie par datachunk, et le timelapse garantit qu'un seul morceau est lu à un intervalle spécifié.

Cette approche simple offre un moyen flexible de limiter la bande passante de vos requêtes HTTP GET. . Vous pouvez ajuster le datachunk et le timelapse selon vos besoins pour obtenir la restriction de bande passante souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn