Создаете структуру Clients. в ней поля nickname, connect.
type Client struct {
ID int // Идентификатор юзера
Nickname string // Никнейм клиента
Conn *websocket.Conn // Сокет клиента
}
После авторизации клиента на вашем сокет сервере, добавляете его в глобальный массив clients, ну и собственно ловите пакеты сообщений, например в json:
{"to" : "nickname", "message" : "hello"}
Дальше циклом пробегаетесь по массиву clients и если ник клиента совпадает с полем to из json, то отправляете ему сообщение.
P. S. Самое поверхностное описание, без углубления в каналы юзера/сессии/аутентификацию/работы с json