Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

init_tcp.go 842B

1234567891011121314151617181920212223242526272829303132333435
  1. package utils
  2. import (
  3. "fmt"
  4. "net"
  5. "time"
  6. )
  7. const tcpKeepAlivePingPeriod = 2 * time.Second
  8. func InitTCP(conn net.Conn, readBufferSize int, writeBufferSize int) error {
  9. tcpConn := conn.(*net.TCPConn)
  10. if err := tcpConn.SetNoDelay(true); err != nil {
  11. return fmt.Errorf("cannot set TCP_NO_DELAY: %w", err)
  12. }
  13. if err := tcpConn.SetReadBuffer(readBufferSize); err != nil {
  14. return fmt.Errorf("cannot set read buffer size: %w", err)
  15. }
  16. if err := tcpConn.SetWriteBuffer(writeBufferSize); err != nil {
  17. return fmt.Errorf("cannot set write buffer size: %w", err)
  18. }
  19. if err := tcpConn.SetKeepAlive(true); err != nil {
  20. return fmt.Errorf("cannot enable keep-alive: %w", err)
  21. }
  22. if err := tcpConn.SetKeepAlivePeriod(tcpKeepAlivePingPeriod); err != nil {
  23. return fmt.Errorf("cannot set keep-alive period: %w", err)
  24. }
  25. return nil
  26. }