Sondaj lung de la și la mine, savepearlharbor

Compilarea modulului Nginx sub linux

Pentru a susține conexiunile lungi de interogare în serverul Nginx, este implementat un minunat modul nginx-push-stream-stream. Deoarece nu este inclus în livrarea oficială, trebuie să fie descărcat, configurat și compilat cu Nginx.





Înainte de aceasta, trebuie să aveți instalate toate pachetele necesare

Apoi, trebuie să descărcați modulul nginx-push-stream-module, nginx în sine, și să le compilați împreună.

Clonați proiectul de la GIT

Descărcați și despachetați ultimul nginx







Configurarea și compilarea nginx împreună cu modulul nginx-push-stream

Dacă nu există erori de compilare, totul este gata. Să verificăm dacă am instalat exact acel Nginx și faptul că acum are într-adevăr un modul nginx-push-stream-module

După executarea acestor comenzi, ar trebui să vedeți acest lucru:

Configurarea conexiunii Nginx pentru conexiuni lungi de interogare

Prin eliminarea configurației altor parametri ai serverului, fișierul de configurare /usr/local/nginx/nginx.conf ar trebui să arate astfel:

Un exemplu pentru înțelegerea muncii:
Puteți crea mai mulți abonați sunând: stream.example.com/sub/1. stream.example.com/sub/2. stream.example.com/sub/3. Fiecare dintre ele se va "închide" pe serverul Nginx timp de 25 de secunde (push_stream_longpolling_connection_ttl). Dacă apelăm la solicitarea POST pentru stream.example.com/pub?id=2 și trimitem un mesaj "Bună ziua" în organism, abonatul "suspendat" pe / sub / 2 va primi un răspuns "Bună". Este convenabil să verificați acest lucru în plug-in-ul Poster pentru FireFox.

Am incercat metode diferite, dar pentru standard am ales CORS (Sharing resursa de origine). În comparație cu alte metode au următoarele avantaje:

  • Funcționează excelent în browserele Chrome, FireFox, Opera, IE 8, 9, 10
  • În browsere nu se blochează pictograma paginii de descărcare
  • Funcționează pe domenii diferite (crossdomain)

Începeți $ - jQuery, iar în subID variabilă - o valoare unică pentru abonat

Este important să spunem despre cei doi parametri etag și timp.

Fără ele, sondajele lungi nu au funcționat tot timpul și mesajele au trecut o dată. Acești doi parametri sunt necesari de modulul nginx-push-stream-modul pentru a identifica mesajele pe care abonatul nu le-a primit încă. Deci, pentru un loc de muncă stabil, este necesar.

În concluzie







Trimiteți-le prietenilor: