LINUX.ORG.RU

web sockets, реализация на стороне сервера


0

2

Я хочу переписать некоторые свои веб-интерфейсы управления железяками с использованием вебсокетов. Примеры в интернете посмотрел - работают. Но никак не могу найти краткого изложения: что надо сделать на сервере, чтобы установить связь?

Итак, у меня есть сишная самописная CGI-библиотечка, как мне добавить туда поддержку вебсокетов?

☆☆☆☆☆
Ответ на: комментарий от Eddy_Em

ну ок есть демон, демон слушает сокет, но причем тут апач и почему он должен этот демон запускать? ты часто видел что бы апач запускал демонов? честно?

trashymichael ★★★
()
Ответ на: комментарий от Eddy_Em

> ginx мне не нравится. Дохловатый какой-т

хорошо когда пишешь академичный софт управления метровым телескопом для одного астронома...

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

в голову приходит только одна мысль, тебе хочется что бы ВСЕМ ЧТО ВЕБ РУЛИЛ АПАЧ, но это дружок уже АПАЧ ГОЛОВНОГО МОЗГА

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

ты часто видел что бы апач запускал демонов? честно?

У меня он этим как раз и занимается (клиент подключается, проходит аутентификацию, запускает демона, затем отправляет запросы на состояние и изменение параметров, а демон работает, пока его не отключат).

хорошо когда пишешь академичный софт управления метровым телескопом для одного астронома...

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

тебе хочется что бы ВСЕМ ЧТО ВЕБ РУЛИЛ АПАЧ, но это дружок уже АПАЧ ГОЛОВНОГО МОЗГА

Нет, дружок, это рациональное разделение обязанностей. Зачем мне писать свой собственный веб-сервер, если есть апач?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

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

Хотя нет. Все равно бы апачем пользовался: у нас канал наружу около 50-100кбит/с. Так что, апач тормозить не будет :)

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

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

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

засядут на них, ничего не делая, в ожидании таймаута,

короткий таймаут и всё.

автор все верно написал, очень жду развязки

stevejobs ★★★★☆
()

Напомнил одного товарища, который хотел явный delete в жабке и не понимал какие могут быть сложности с реализацией.

Так и ты, со своим апачем и cgi модулем на си. Ждешь вытаскивания волшебной вундервафли, которая магическим образом протащит вебсокет.

baverman ★★★
()
Ответ на: комментарий от baverman

Ждешь вытаскивания волшебной вундервафли, которая магическим образом протащит вебсокет.

Никакой вундервафли я не жду :)

Раз уж никто с вебсокетами не работал, буду дальше сам разбираться. Если через модуль апача не выйдет, буду использовать библиотечку и по запросу клиента после аутентификации поднимать свой вебсокет-сервер...

Eddy_Em ☆☆☆☆☆
() автор топика

Ну я тупой!

Попробовал примеры из libwebsockets, понял, что вникать в подноготную не надо (если нормальной библиотечкой пользоваться). А реализовать можно как при помощи апача (т.е. после успешной аутентификации демон открывает вебсокет, а клиенту указывает адрес и порт), так и вообще не запуская никакого веб-сервера (демон запущен постоянно, слушает определенный порт, отдает по запросу веб-страницу и т.п.). Правда, во втором случае не очень удобно набирать адрес (т.к. надо порт указывать), да и аутентификацию придется впиливать в сам модуль (и непонятно, как там с куками обстоит).

В общем, будут ковырять дальше. Попробую реализовать первый вариант.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от tuxin

Спасибо, почитаю. Но что-то сомневаюсь, что там будет про вебсокеты...

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Нжинкс не будет, ну, по крайней мере, не на таком малом количестве коннектов, как апач - у апача пул, что заставляет тех, кто последний, ждать своей очереди, пока те, кто первые, заняли весь пул апача. У нжинкса же лимит - грубо объем оперативы под открытые сокеты (или лимит открытых сокетов в ядре). Лайти тоже без пула работает. accf_http.ko тоже позволяет предотвратить влияние этого бага на апачах, но это оффтопик.

GateKeeper ★★
()
Ответ на: комментарий от stevejobs

Короткий это сколько? 500? 250? 1000? Есть гарантия, что браузер всегда успеет доставить запрос до сервера в пределах таймаута?

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

> Есть гарантия, что браузер всегда успеет доставить запрос до сервера в пределах таймаута?

короткий - это пару минут

для highload, в настройках аккаунта выставлять скорость соединения, как на торрентах

плюс минимальные системные требования, latency не более чем. У кого более - отправляются менять провайдера.

stevejobs ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.