Pachetul go-websocket ofera o modalitate usoara de a configura un server Websocket bogat si partea clientului.

Este deja testat la productie si folosit pe Iris.

Instalare

Singura cerinta este Limbajul de programare Go.

$ go get -u github.com/kataras/go-websocket

Exemple

Pentru a vizualiza exemple de lucru, navigati la folderul ./examples.

Documente

WebSocket este un protocol care ofera canale de comunicare full-duplex printr-o singura conexiune TCP . Protocolul WebSocket a fost standardizat de IETF ca RFC 6455 in 2011, iar API-ul WebSocket in Web IDL este standardizat de W3C.

WebSocket este conceput pentru a fi implementat in browsere web si servere web, dar poate fi utilizat de orice aplicatie client sau server. Protocolul WebSocket este un protocol independent bazat pe TCP. Singura sa relatie cu HTTP este ca strangerea de mana este interpretata de serverele HTTP ca o cerere de upgrade. Protocolul WebSocket face posibila mai multa interactiune intre un browser si un site web, facilitand transferul de date in timp real de la si catre server .

Cititi mai multe despre Websockets pe Wikipedia.

Configurare

// Configurati tipul de configurare a serverului websocket Config struct {// IDGenerator folosit pentru a crea (si ulterior, setati) // un ID pentru fiecare conexiune de intrare websocket (clienti). // Cererea este un parametru de intrare pe care il puteti utiliza pentru a genera ID-ul (de exemplu, din anteturi). // Daca este gol, ID-ul este generat de DefaultIDGenerator: uuid sau, daca nu reuseste, o functie randomString (64) IDGenerator (w http.ResponseWriter, r * http.Request) sir // EvtMessagePrefix este prefixul evenimentelor web subliniate care sunt infiintate sub capote. // Acest prefix este vizibil doar pentru partea javascript (cod) si nu are nicio legatura // cu mesajul pe care il primeste utilizatorul final. // Nu-l modificati decat daca este absolut necesar. // // Daca este gol, implicit este [] octet (“go-websocket-message:”). EvtMessagePrefix [] octet // Eroarea este functia care va fi declansata daca un client nu ar putea actualiza conexiunea HTTP // la o conexiune web, o eroare de strangere de mana. Functii de eroare (w http.ResponseWriter, r * http.Request, status int, motiv error) // CheckOrigin o functie care se numeste chiar inainte de strangere de mana, // daca returneaza false, atunci acel client nu are voie sa se conecteze cu serverul websocket . CheckOrigin func (r * http.Request) bool // HandshakeTimeout specifica durata finalizarii handshake-ului. HandshakeTime time.Duration // WriteTime time permis pentru a scrie un mesaj la conexiune. // 0 inseamna ca nu exista timeout. // Valoarea implicita este 0 WriteTimeout time.Duration // ReadTime time permisa citirea unui mesaj din conexiune. // 0 inseamna ca nu exista timeout. // Valoarea implicita este 0 Timp de citire. Durata // PongTimeout a permis citirea urmatorului mesaj pong din conexiune. // Valoarea implicita este de 60 * timp. Al doilea timp PongTimeout. Durata // PingPeriod trimite mesaje ping la conexiune in aceasta perioada. Trebuie sa fie mai mic decat PongTimeout. // Valoarea implicita este de 60 * timp.

videos pornos de abuelas videos putas maduras
sex porne coños de viejas
porno casero en españa porno madres peludas
sexo casero españa porno traducido español
pornotrans como folla mi mujer
incesto ruso hentaihd
maduras españolas camara oculta madura cabalgando
españolas amater paja en el coche
incesto lesbianas videosgays
videos porno gay de españoles caras llenas de semen
videos chicas gratis folladas extremas
cerdas com gratis porno casero real español
mamada de rodillas orgia bisexual
video sexo gratis tetudas españolas
porno andaluz porno torrent magnet
mi primera follada videos de chicas gratis
abuelas españolas xxx parejas pilladas en la calle
miakalifa maduras por dinero
cartoon xxx www rubias
como folla mi mujer tetudas jovenes

Al doilea timp PingPeriod.Duration // MaxMessageSize dimensiunea maxima a mesajului permisa de la conexiune. // Valoarea implicita este 1024 MaxMessageSize int64 // BinaryMessages o seteaza la adevarat pentru a denota mesaje de date binare in loc de text utf-8 // compatibil daca doriti sa utilizati EmitMessage al conexiunii pentru a trimite clientului date binare personalizate, cum ar fi un comunicare nativa server-client. // Valoarea implicita este falsa BinaryMessages bool // ReadBufferSize este dimensiunea bufferului pentru cititorul de conexiune. // Valoarea implicita este 4096 ReadBufferSize int // WriteBufferSize este dimensiunea bufferului pentru scriitorul conexiunii. // Valoarea implicita este 4096 WriteBufferSize int // EnableCompression specifica daca serverul ar trebui sa incerce sa negocieze pe // compresia mesajului (RFC 7692). Setarea acestei valori la true nu // garanteaza ca compresia va fi acceptata. In prezent, sunt acceptate doar modurile „fara context // preluare”. // // Valorile implicite sunt false si ar trebui sa ramana asa cum este, cu exceptia cazului in care exista cerinte speciale. EnableCompression bool // Subprotocole specifica protocoalele acceptate de server in ordinea // preferintelor. Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} // Valoarea implicita este 4096 WriteBufferSize int // EnableCompression specifica daca serverul ar trebui sa incerce sa negocieze pe // compresia mesajului (RFC 7692). Setarea acestei valori la true nu // garanteaza ca compresia va fi acceptata. In prezent sunt acceptate doar modurile „fara context // preluare”. // // Valorile implicite sunt false si ar trebui sa ramana asa cum este, cu exceptia cazului in care exista cerinte speciale. EnableCompression bool // Subprotocole specifica protocoalele acceptate de server in ordinea // preferintelor. Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} // Valoarea implicita este 4096 WriteBufferSize int // EnableCompression specifica daca serverul ar trebui sa incerce sa negocieze pe // compresia mesajului (RFC 7692). Setarea acestei valori la true nu // garanteaza ca compresia va fi acceptata. In prezent sunt acceptate doar modurile „fara context // preluare”. // // Valorile implicite sunt false si ar trebui sa ramana asa cum este, cu exceptia cazului in care exista cerinte speciale. EnableCompression bool // Subprotocole specifica protocoalele acceptate de server in ordinea // preferintelor. Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} Setarea acestei valori la true nu // garanteaza ca compresia va fi acceptata. In prezent sunt acceptate doar modurile „fara context // preluare”. // // Valorile implicite sunt false si ar trebui sa ramana asa cum este, cu exceptia cazului in care exista cerinte speciale. EnableCompression bool // Subprotocole specifica protocoalele acceptate de server in ordinea // preferintelor. Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} Setarea acestei valori la true nu // garanteaza ca compresia va fi acceptata. In prezent sunt acceptate doar modurile „fara context // preluare”. // // Valorile implicite sunt false si ar trebui sa ramana asa cum este, cu exceptia cazului in care exista cerinte speciale. EnableCompression bool // Subprotocole specifica protocoalele acceptate de server in ordinea // preferintelor. Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir} Daca acest camp este setat, atunci metoda Upgrade negociaza un // subprotocol selectand prima potrivire din aceasta lista cu un protocol // solicitat de client. Subprotocole [] sir}

CONTUR

// ws: = websocket.New (websocket.Config … {}) // ws.websocket.OnConnection (func (c websocket.Connection) {}) // sau package-default websocket.OnConnection (func (c websocket .Conexiune){})

Metode de conexiune

ID () string Request () * http.Request // Receive from the client On (“anyCustomEvent”, func (message string) {}) On (“anyCustomEvent”, func (message int) {}) On (“anyCustomEvent” , func (mesaj bool) {}) Activat (“anyCustomEvent”, func (mesaj anyCustomType) {}) Activat (“anyCustomEvent”, func () {}) // Primiti un mesaj web nativ de la client / de a importa go-websocket.js in .html OnMessage (func (mesaj [] octet) {}) // Trimite clientului Emit (“anyCustomEvent”, sir) Emit (“anyCustomEvent”, int) Emit (“anyCustomEvent “, bool) Emit (” anyCustomEvent “, anyCustomType) // Trimiteti mesaje web native // ​​cu config.BinaryMessages = adevarat // util atunci cand utilizati proto sau ceva de genul acesta. // // compatibil fara a fi nevoie sa importati go-websocket-ul.

FAQ

Explorati aceste intrebari sau navigati la chatul comunitatii.

Versionare

Curent: v0.1.0

oameni

Autorul go-websocket este @kataras.

Daca sunteti dispus sa donati , nu ezitati sa trimiteti orice suma prin paypal

Contribuind

Daca sunteti interesat sa contribuiti la proiectul go-websocket, va rugam sa faceti un PR.

Licenta

Acest proiect este licentiat sub licenta MIT.

Licenta poate fi gasita aici.