Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/WebSocket Connector

WebSocket Connector

Условие задачи

Необходимо корректно реализовать методы handleConnect и handleDisconnect, учитывая возможность одновременных подключений и отключений, и обеспечить безопасную работу со счётчиком подключенных клиентов в условиях параллелизма

gotype Message struct {
  UserID   int
  Payload  string
}

type Connection struct {
  UserID   int
  DeviceID string
}

func (c *Connection) Write(p []byte) (n int, err error) {
  // Pretend it is implemented
  return 0, nil
}

type WSServer struct {
  connectedClientsCount uint64
}

func (w *WSServer) handleConnect(c Connection) {
  // TODO
}

func (w *WSServer) handleDisconnect(c Connection) {
  // TODO
}

func (w *WSServer) totalConnectedClients() uint64 {
  return w.connectedClientsCount
}

func (w *WSServer) handleQueueMessages(messages []Message) (int, error) {
  for i, m := range messages {
    err := w.sendToConnectedDevices(m)
    if err != nil {
      return i, err
    }
  }
  return len(messages), nil
}

func (w *WSServer) sendToConnectedDevices(m Message) error {
  // TODO
  return nil
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта