Отличная идея. Спасибо. Так и сделаю.
Не давать подписываться на каналы.
Например, есть тема на форуме. Есть канал thread_123, где 123 - айди темы. Собственно на этот канал должны иметь возможность подписываться только те, кто может видеть данную тему.
Немного не понял. Вы предлагаете просто запрашивать php скрипт, аля long-polling? Я планирую ставить nginx + php. Не помрет ли php от большого количества висячих запросов?
Набор СЛУЧАЙНЫХ символов - не подходит, т.к. надо будет знать, куда отправлять. Только если что-то типа $channel_name = md5($name), но в этом случае при сильном желании те, кому нужно будет получать уведомления для данного канала различными способами смогут получить доступ.
Имя канала = идентификатор сессии и туда отправлять данные - вариант, но в этом случае придется хранить идентификаторы сессий пользователя и, собственно, хранить список тех, кто должен получить уведомление (для каждого источника, например, тема на форуме).
Можно сделать паблик каналы и приватные каналы, но у меня из паблик данных будут только новости на главной, так что, не особо имеет смысл. Конечно, можно определять доступность страницы (например, темы) для гостей (а значит, это могут читать все пользователи), но это лишнее, как по мне.
В ASP.NET (SignalR) есть возможность проверки личности пользователя как при подключении, так и при передаче команды хабу. Но там, как я понимаю, это реализовано при помощи модуля для IIS, на php такое невозможно.