Всем привет!
В общем хочу строить метрики основываясь на вызовах эвентов как с сервера так и с клиента.
Первая мысль, это сделать две сущности на сервере, через которые вызывать эвенты.
Ну к примеру:
Вопрос в том, не будет ли евент 'server_callEvent' как узкое горлышко?
Может кто-то уже пытался реализовать что-то подобное?
Что сам думаю:
По идее, все евенты собираются в некую сущность из которой дергается тот или иной евент при вызове.
Ну и по моему мнению ничего страшного что все летит через один эвент, не должно произойти, так как rage на сколько я понимаю умеет только в один поток...
Тут даже возникает соблазн написать свой обработчик евентов, даже можно какие-нибудь сложные вычисления вытащить в воркеры.
Но это уже совсем другое...
В общем хочу строить метрики основываясь на вызовах эвентов как с сервера так и с клиента.
Первая мысль, это сделать две сущности на сервере, через которые вызывать эвенты.
Ну к примеру:
JavaScript:
//packages
//Прием евентов от клиентов
mp.events.add('server_callEvent', (player, event, ...args)=>{
mp.events.call(event, player, ...args);
//сбор данных о вызовах евентов от клиентов
})
//Отправка эвента клиентам(player.callEvent('testEvent', [123]))
mp.Player.prototype.callEvent = (event, args){
this.call(event, args);
//сбор данных о отправке евентов клиентам.
}
//С клиента вызов серверных евентов
mp.events.callRemoteCustom = (eventName, ...args) => {
mp.events.callRemote('server_callEvent', ...[eventName, ...args])
}
Может кто-то уже пытался реализовать что-то подобное?
Что сам думаю:
По идее, все евенты собираются в некую сущность из которой дергается тот или иной евент при вызове.
Ну и по моему мнению ничего страшного что все летит через один эвент, не должно произойти, так как rage на сколько я понимаю умеет только в один поток...
Тут даже возникает соблазн написать свой обработчик евентов, даже можно какие-нибудь сложные вычисления вытащить в воркеры.
Но это уже совсем другое...