Опитвам се да създам WebSocket клиент, за да се свържа със съществуващ сървър (mtgox api).
Като отправна точка, за да разбера свързването към WebSockets, намерих този примерен код https://github.com/jaspervdj/websockets/blob/master/example/client.hs
Проблемът е, че Mtgox изисква да се изпращат заглавки, когато се свързва, просто не съм сигурен как да ги изпратя.
Актуализация: За да помогна да реша това, създадох и прост сървър за уеб сокети. Когато се свържа с него чрез JavaScript WebSocket от моята JavaScript конзола на Chrome, виждам следните заглавки:
requestHeaders = [("Upgrade","websocket"),("Connection","Upgrade"),
("Host","127.0.0.1:8001"),("Origin","chrome://newtab"),("Pragma","no-cache"),
("Cache-Control","no-cache"),("Sec-WebSocket-Key","yOsPEMHx9AyT9u3ssNma/Q=="),
("Sec-WebSocket-Version","13"),("Sec-WebSocket-Extensions","x-webkit-deflate-frame"),
("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36")]
Като има предвид, че когато се свързвам чрез клиента на Haskell, виждам само следните заглавки:
requestHeaders = [("Host","127.0.0.1"),("Connection","Upgrade"),
("Upgrade","websocket"),("Sec-WebSocket-Key","X3hMDW4fAau53dbz7w4MTw=="),
("Sec-WebSocket-Version","13")]
Не знам кои от заглавките всъщност се изискват от MtGox, но моят план беше просто да изпратя същите, които Chrome изпраща, тъй като това работи.