49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"sync"
|
|
"time"
|
|
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
func main() {
|
|
app := tview.NewApplication()
|
|
list := tview.NewList().
|
|
AddItem("List item 1", "Some explanatory text", 'a', webload).
|
|
AddItem("List item 2", "Some explanatory text", 'b', nil).
|
|
AddItem("List item 3", "Some explanatory text", 'c', nil).
|
|
AddItem("List item 4", "Some explanatory text", 'd', nil).
|
|
AddItem("Quit", "Press to exit", 'q', func() {
|
|
app.Stop()
|
|
})
|
|
if err := app.SetRoot(list, true).SetFocus(list).Run(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func webload() {
|
|
wg := sync.WaitGroup{}
|
|
wg.Add(1000)
|
|
for i := 0; i < 1000; i++ {
|
|
go webrequest(&wg)
|
|
}
|
|
wg.Done()
|
|
fmt.Println("Launched 100 Request")
|
|
}
|
|
|
|
func webrequest(wg *sync.WaitGroup) {
|
|
time.Sleep(time.Second)
|
|
protocol := "https://"
|
|
url := "heimdall.voser.cloud"
|
|
resp, err := http.Get(fmt.Sprintf("%s%s", protocol, url))
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
} else {
|
|
fmt.Printf("Response status code: %d", resp.StatusCode)
|
|
}
|
|
defer resp.Body.Close()
|
|
}
|