Ядро asp.net, как показать, сколько людей просмотрело сообщение - PullRequest
0 голосов
/ 13 мая 2019

У меня есть форум BBS, просто интересно, как посчитать просмотры поста?

Мне нужно учитывать как зарегистрированных пользователей, так и посетителей.

Я думал о подсчете IP-адресов,но многие пользователи или посетители могут приходить с одного и того же IP.Затем я думаю о подсчете GA (как утверждает Google, каждая _ga длится 2 года).

Потом я некоторое время искал, но не нашел никаких примеров.

Может ли кто-нибудь просветить меня, пожалуйста?

Спасибо

1 Ответ

2 голосов
/ 13 мая 2019

Ваш вопрос слишком широкий, но, вообще говоря, вам понадобится какое-то промежуточное программное обеспечение для запуска в качестве части конвейера запросов и обновления некоторого хранилища данных. Если вы хотите сделать скидку на несколько просмотров одним и тем же человеком, вам понадобится какой-то дискриминатор. Вот где может появиться что-то вроде IP-адреса, но, как вы упомянули, он не идеален и может привести к тому, что несколько человек будут объединены в одно устройство. Наилучшим подходом является установка идентификатора с помощью файла cookie, как это делает GA со своими файлами cookie для отслеживания. Этот идентификатор может быть чем угодно; он должен быть уникальным для куки. Guid.NewGuid() должно хватить. Затем вы просто записываете это с записью представления, и перед сохранением новой записи представления сначала проверяйте запись с этим значением cookie, если оно есть.

Несколько вещей, которые нужно иметь в виду:

  1. Вместо обновления одного столбца ViewCount или чего-либо еще, вы должны отслеживать это во внешней таблице, в которой записывается посещенный URL-адрес и любая различающая информация, такая как идентификатор файла cookie отслеживания. Когда вам нужно получить полное количество просмотров, просто агрегируйте количество из этой таблицы. Это удалит большинство ваших проблем параллелизма. В противном случае вам придется выполнить запись в ViewCount пропеллер или что-то еще, что создаст дроссельную точку для вашего приложения.

  2. Даже файл cookie для отслеживания не идеален. С одной стороны, это будет зависеть от конкретного устройства, поэтому один и тот же пользователь будет учитываться, если они заходят как с настольного компьютера, так и с мобильного устройства, или даже из нескольких браузеров на одном устройстве. Однако здесь действительно нет лучшего варианта. Если у вас есть действительный вошедший в систему пользователь, с которым вы можете работать, вы можете использовать его в качестве потенциального дискриминатора для получения более точных подсчетов, но, конечно, вам все равно нужен запасной вариант для анонимных пользователей.

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