Что будет быстрее использовать if или forEach?
Это настолько не значительно что не стоит заморачиваться.
Ответ вот здесь: либо создать массив и через foreach перебирать все поступившие данные, что будет быстрее?
Вам пришло сообщение, вы положили его в массив. Потом еще одно, потом еще одно. Потом, по какой-то причине (событие, таймер), должны вызвать forEach. 
- Т.е. сообщение, какое-то время просто лежит в массиве без обработки. 
- А если ошибетесь и забудете, после forEach, массив очисить, продолжительность обработки будет расти со временем. 
- а что, если в момент, когда forEach выполнился, а массив вы еще не очистили, вам придут сообщения? Они лягут в массив и потом удалятся сразу
Лучшей рекомендацией дейстительно будет посмотреть в сторону rxjs