𝒦𝒶𝓁𝒶𝓎⛩
после чего канал офф
Vladimir
Ок, а зачем тебе указатель на канал?
𝒦𝒶𝓁𝒶𝓎⛩
А я пока хз
𝒦𝒶𝓁𝒶𝓎⛩
навеное не зачем
Vladimir
И у тебя сет пишет в канал
Vladimir
А не создаёт новый канал
Vladimir
Это нормально?
Vladimir
И что нет проверки что канал вообще есть
𝒦𝒶𝓁𝒶𝓎⛩
ох
𝒦𝒶𝓁𝒶𝓎⛩
запутал вас
𝒦𝒶𝓁𝒶𝓎⛩
из REST get запрос создает канал
Vladimir
И ещё вопрос "что не так" подразумевает что у тебя что то пошло не так, не?
Vladimir
из REST get запрос создает канал
При этом канал может создаваться только один раз же
𝒦𝒶𝓁𝒶𝓎⛩
# region45/obereg_video/tls_server tls_server/users.go:14:6: invalid operation: w[msg.ID] (type *waitMessage does not support indexing) tls_server/users.go:18:9: invalid operation: msg <- w[id] (send to non-chan type structure.Message) tls_server/users.go:18:13: invalid operation: w[id] (type *waitMessage does not support indexing) tls_server/users.go:63:17: invalid operation: c.write <- msg (send to non-chan type *chan interface {}) tls_server/users.go:67:1: missing return at end of function # region45/obereg_video/web_server web_server/web_server.go:61:5: undefined: tls_conn_active
𝒦𝒶𝓁𝒶𝓎⛩
Я плохо понимаю
Vladimir
У тебя свой тип, с ним уже нельзя так просто общаться как с мапой
Vladimir
И второе - ты используешь в Гете то что передал как канал
𝒦𝒶𝓁𝒶𝓎⛩
хм
Vladimir
Ещё учти что в мап нельзя писать из нескольких потоков или горутин
Vladimir
И также нельзя параллельно читать и писать
𝒦𝒶𝓁𝒶𝓎⛩
мьютексы
Vladimir
Само собой. В твоём примере нет прост
Vladimir
Я сейчас дойду до ноута, покажу как бы я это же самое делал
𝒦𝒶𝓁𝒶𝓎⛩
𝒦𝒶𝓁𝒶𝓎⛩
Vladimir
@Nixolay еще раз, ты пытаешься сделать чтобы у тебя была некая структура которая содержит каналы, куда тебе надо запихать ответ, так?
Vladimir
а потом другая горутина читает из этих каналов ответы?
𝒦𝒶𝓁𝒶𝓎⛩
да по id сообщения
Vladimir
@Nixolay а как твоя горутина, которая обрабатывает данные должна узнать что этот айдишник ей надо обработать?
𝒦𝒶𝓁𝒶𝓎⛩
это не поток
𝒦𝒶𝓁𝒶𝓎⛩
это синглетон
𝒦𝒶𝓁𝒶𝓎⛩
подразумевалось
𝒦𝒶𝓁𝒶𝓎⛩
и обращение на прямую
Kirya
я вижу это так: есть, например вебсокет, из соединения мы достаём сессию и по ней определяем userId. создаём map[userId]chan Msg. И когда например кто-то шлёт сообщение юзеру, мы находим по userId его в мапе и отправляем туда сообщение
𝒦𝒶𝓁𝒶𝓎⛩
немного услажню есть мап юзер они хранятся по хешу юзера
𝒦𝒶𝓁𝒶𝓎⛩
у каждого юзера в этом мапе есть пул сообщения
𝒦𝒶𝓁𝒶𝓎⛩
для каждого сообщения есть итератор сообщений
𝒦𝒶𝓁𝒶𝓎⛩
который создает id для cjj,otybz
𝒦𝒶𝓁𝒶𝓎⛩
сообщения
𝒦𝒶𝓁𝒶𝓎⛩
его я отправляю в мап(пул) сообщений который хранит канал, и из этого канала я жду сообщение
Kirya
ничего не понятно, опиши процесс снаружи
𝒦𝒶𝓁𝒶𝓎⛩
https://cs.pikabu.ru/post_img/2013/06/28/5/1372401254_1679528307.gif
Kirya
я примерно так и представлял
𝒦𝒶𝓁𝒶𝓎⛩
Вообще пишем реализации HLS для получения видео с серого ip машины. Для получения видео на плеер HLS нужно сделать get запросы (получить плейлист, фрагмент видео)
𝒦𝒶𝓁𝒶𝓎⛩
Так как видео хранится за серым ip держим TLS соединение постоянное и по запросу отправляем вео на плеер
𝒦𝒶𝓁𝒶𝓎⛩
видео*
𝒦𝒶𝓁𝒶𝓎⛩
что бы идетифицировать сообщение именно для этого плеера и именно этот фрагмент
𝒦𝒶𝓁𝒶𝓎⛩
пишу кастыли
𝒦𝒶𝓁𝒶𝓎⛩
ввиде мапа
𝒦𝒶𝓁𝒶𝓎⛩
мап хранит пул каналов вместимосью 1 сообщение и обращение идет по id
𝒦𝒶𝓁𝒶𝓎⛩
dhjlt dct
𝒦𝒶𝓁𝒶𝓎⛩
вроде все
Kirya
Я так понял там одностороннее взаимодействие? Тогда простейший вариант mu sync.Mutex map[id]Connection{ Id int Msgs chan Msg }
Kirya
ну и ещё Msg лучше ссылку передавать *Msg
Илья
долго искать хвосты, а зачем так сложно с запросом HLS? чанки же можно качать обычным гетом или XHR
Илья
прокси на nginx замутить (или любом другом веб-сервере)
Kirya
я так понял там не чанки
𝒦𝒶𝓁𝒶𝓎⛩
Их качать можно а вот они лежат на машине их нужно получить
Kirya
а, да, чанки
𝒦𝒶𝓁𝒶𝓎⛩
для этого tls и кастыли
Илья
вот вместо костылей я и предлагаю nginx как реверс-прокси
𝒦𝒶𝓁𝒶𝓎⛩
type waitMessage struct { msg map[string]chan *structure.Message mu *sync.Mutex }
Илья
где-то же есть белый айпи в конце концов
𝒦𝒶𝓁𝒶𝓎⛩
Пикабу
Dmitry
Пикабу
есть линк?
𝒦𝒶𝓁𝒶𝓎⛩
сам там не сижу друзья кинули джавно
Vladimir
зачем тебе УКАЗАТЕЛЬ на мьютекс?
𝒦𝒶𝓁𝒶𝓎⛩
type waitMessage struct { msg map[string]chan *structure.Message mu sync.Mutex }
Kirya
тебе не нада вот эта штука type waitMessage struct
Kirya
просто msg map[string]chan *structure.Message mu sync.Mutex
Chebyrash
зачем тебе УКАЗАТЕЛЬ на мьютекс?
Так по-моему на него нужен указатель. Его же нельзя копировать.
Kirya
net
Kirya
он внутри структуры должен быть
Kirya
его нельзя копировать