170 похожих чатов

Добрый день, подскажите пожалуйста, пытаюсь на го реализовать обработку логполлинг

коннектов
клиенты стучатся ко мне и ждут ответа, а я собираю все коннекты в пул, читаю в фоне очередь и, если нахожу ответ, отправляю в соответствующий коннект

проблема у меня в том, что соединение почти моментально обрывается, а я что-то не могу понять, как мне держать его живым, пока не нарою ответ в очереди, может кто-то подсказать?

9 ответов

7 просмотров

канал наверное...

Что такое "логполлинг коннекты"? По какому протоколу к вам коннектятся? Зачем их собирать в пул? В чем задача вашего сервиса?

Alexey-Vityazev Автор вопроса
Сергей
Что такое "логполлинг коннекты"? По какому протоко...

коннектятся по http сами коннекты самые обычные, тут сервер уже должен держать коннект открытым до тех пор, пока не получит ответ соответственно коннектов может быть много от разных клиентов, и мне надо все их держать открытыми и знать, в какой из них отправлять ответ, когда я его найду

Alexey Vityazev
коннектятся по http сами коннекты самые обычные, т...

Используйте обычный вебсокет. Лонгполлинг не нужен. Ответ отправлять туда, откуда пришел запрос. Каналы не нужны.

Alexey-Vityazev Автор вопроса
Сергей
Используйте обычный вебсокет. Лонгполлинг не нужен...

я бы с радостью, но это апи для внешних клиентов, которым не особо удобно по апи интегрироваться с вебсокетами, стандартом приняты хттп запросы

Alexey Vityazev
я бы с радостью, но это апи для внешних клиентов, ...

Ок, не используйте вебсокет. Отвечайте просто по http.

А чем вам SSE не подошёл?

Код покажите

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
8
Почему никто ещё не написал квантовую виртуальную машину на Windows?
КТ315
7
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Карта сайта