This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос реализации RPC

johndoe

Начинающий специалист
10 Май 2025
154
59
40
Привет, форумчане. К сожалению эта тема не с вопросом о том, как поднять ra3 и почему вместо названий бизнеса у меня в "маей базе мискуль" стоят "?????????"

Речь немного о другом, а именно - реализация RPC. Я где то видел уже готовое решение в виде зависимости с реализацией, открыв её я посмотрел что там реализовано все на дефолт events.call / callRemote

Вопрос в другом: у рагу есть решение в виде callProc / callRemoteProc (причем callProc есть и в CEF части). Почему никто не использует её и уходят в пользу дефолт евентов? Есть какие-либо подводные камни заводского решения?
 

UchihaMadara

Гений
VIP
FrontEnd developer
27 Окт 2020
1,069
390
161
Основная фишка (я думаю) - это прокидывать запросы из CEF на сервер. Чего нет в стандартном callProc, да?
Второе - может быть боязнь использовать. Обычный mp.events.call работает на 100%, проверен годами, и через него сделан RPC. А можно ли утверждать, что callProc работает безотказно?
 

johndoe

Начинающий специалист
10 Май 2025
154
59
40

Да, в этом и вопрос. Точно ли он нормально сделан на уровне мультиплеера или "на отъебись, лишь бы было".


В стандартном callProc нет, но что мешает:

CEF -> Client

JavaScript:
mp.events.callProc('asd')

Client -> Server

JavaScript:
mp.events.addProc('asd', async () => return mp.events.callProcRemote('asd-server'))
 

UchihaMadara

Гений
VIP
FrontEnd developer
27 Окт 2020
1,069
390
161
Ну а ты хочешь что-то конкретное узнать и потом сделать?
 

johndoe

Начинающий специалист
10 Май 2025
154
59
40
Ну а ты хочешь что-то конкретное узнать и потом сделать?

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

Также хочу самописанное решение касаемо RPC. Вариант с callProc звучит проще и "дешевле" по трудозатратам и человеко-часам, но вот не хочется жидко обосраться, когда будет нагрузочный тест и все эти проц коллы позависают в пендингах.
 

MADARAdev

Старожил
media
FrontEnd developer
30 Дек 2020
769
294
141
29
Использовал в продакшене callProc, не испытывал проблем. Как пример, ситуация, когда работаем с респавном игрока (например смерть, обновлять юай удобно)
 
Реакции: johndoe

MADARAdev

Старожил
media
FrontEnd developer
30 Дек 2020
769
294
141
29
Можешь попробовать замерить скок ты будешь на дефолтных эвентах цепочку проходить по МС, и попробовать callProc, но мне кажется callProc в этом плане натянет эвенты
 

johndoe

Начинающий специалист
10 Май 2025
154
59
40
Суть в callProc в "подкапотных" промисах и ответах на запрос) Банальнийший кейс: система авторизации. { login, password } -> callProc (cef/client) -> addProc -> callProcRemote (client/server) -> обработка данных, ответ -> server/client -> client/cef
 

MADARAdev

Старожил
media
FrontEnd developer
30 Дек 2020
769
294
141
29
Ну ты ту же самую цепочку можешь реализовать и с обычными эвентами. Речь идет о лучшей производительности, попробуй замерить время выполнения с тем и с тем. Ты поймешь что у тебя отработает быстрее. А будет круто проверить на какой нибудь тяжелой операции.
 

Similar threads