Прежде всего, добро пожаловать за этот невероятно оригинальный каламбур, который, я уверен, никто никогда не делал раньше.

Во-вторых, я хотел бы вернуться к этому моменту из поста прошлой недели.

  • Не пытайтесь сделать запрос POST из внешнего API, перенаправляющий чей-то браузер. Зачем тебе вообще это делать?

В то время я сетовал на собственную глупость, но на самом деле задаю неправильный вопрос. Есть много причин, ПОЧЕМУ вы хотели бы предоставлять своим пользователям немедленные обновления на основе новой информации, полученной из других источников. Возможно, вы захотите показать им новые сообщения, опубликованные их друзьями, или сделать так, чтобы экстренные новости появлялись как можно скорее и т. д.

Нет, реальный вопрос, который я должен был задать (и пинать себя), был КАК. Полагаться исключительно на HTTP (ну, по крайней мере, 1.1) это невозможно. Когда я получаю этот POST-запрос от внешнего API, у меня нет возможности узнать, кто просматривает мой сайт в данный момент, и нет возможности отправить этим пользователям новую информацию, пока они не решат обновить страницу или посетить ее повторно. Итак, как я могу создать постоянно обновляемую информацию на своем сайте? Как, я вас спрашиваю? Как?!

(Это сокеты. Ответ — сокеты.)

Используя сокеты, вы можете открыть двустороннюю связь между сервером и браузером. Сервер больше не будет единственным, кто прислушивается к запросам, в то время как браузер гудит вместе с пальцами в ушах, не обращая внимания на любые изменения. С помощью сокетов вы можете настроить прослушиватели на стороне клиента, так что когда ваш сервер кричит: «Эй, есть новое сообщение!», клиент действительно может это услышать и сразу же отобразить новое сообщение.

Я только царапаю поверхность того, что могут сделать сокеты, и я уже люблю их. Есть детская радость, когда вы открываете свое приложение в двух окнах браузера и наблюдаете, как они оба обновляют друг друга в режиме реального времени. Мне не терпится продолжить изучение.