2014-10-22 10 views
16

Protokolün nasıl çalıştığını öğrenmek için reference websocket echo server "el ile" bağlanmaya çalışıyorum (bunun için socat kullanıyorum). Ancak, sunucu her zaman bir yanıt vermeden bağlantıyı kapatır. Bir fikrin neden? ,Netcat/socat/telnet ile el ile bir web bağlantısına nasıl bağlanırım?

GET /?encoding=text HTTP/1.1 
Origin: http://www.websocket.org 
Connection: Upgrade 
Host: echo.websocket.org 
Sec-WebSocket-Key: P7Kp2hTLNRPFMGLxPV47eQ== 
Upgrade: websocket 
Sec-WebSocket-Version: 13 

ben içinde ateş, geliştirici araçları ile bağlantılı parametrelerini kokladı:

socat - TCP:echo.websocket.org:80 

Sonra ben terminalde aşağıdaki metni yapıştırın: Burada

benim yaptığım Bu, aynı makinede kusursuz çalıştığı yerde, bu yüzden doğru olduklarını varsayardım. Ancak bundan sonra, sunucu bir cevap vermeden bağlantıyı hemen kapatır. Niye ya? Protokolü "elle" nasıl uygulayabilirim?

Terminalimde yazım testi yapmak ve sunucuyu yazdıklarıma cevap vermesini istiyorum (Bir web tarayıcısında çalışır).

cevap

26

Sana (Taşıma & satır besleme iade) CRLF için \ N (hat beslemesi) çevirmek için soket akışı değiştirmek istediğiniz düşünüyorum.

socat - TCP:echo.websocket.org:80,crnl 
:

crnl Converts the default line termination character NL ('\n', 0x0a) 
     to/from CRNL ("\r\n", 0x0d0a) when writing/reading on this chan- 
     nel (example). Note: socat simply strips all CR characters. 

yüzden bunu yapmak mümkün olmalıdır düşünüyorum: info socat Doing bu değiştirici içerir detaylı bilgi üretir

İlgili konular