В чем разница между хостами API потокового API MtGox?

Я пытаюсь выяснить, какая разница между websocket.mtgox.com и socketio.mtgox.com для API потоковой передачи MtGox . Глядя на раздел подключения , похоже, что есть несколько комбинаций, которые будут использоваться

websocket.mtgox.com/mtgox
socketio.mtgox.com/mtgox

оба с http или https.

Насколько я вижу, нет никаких упоминаний о том, что они разные, однако я знаю, что сам разбираюсь в том, что они ведут себя по-другому. Я также видел в форумах, что у других людей есть похожие вопросы /проблемы, которые я имел в связи с этим.

Кто-нибудь знает, каковы различия? Также ожидаются ли эти различия и документируются где-то?

Кроме того, фрагмент кода использует протокол https в качестве протокола. Извините мое невежество, но не следует ли использовать ws или wss вместо http и https ? Может ли кто-нибудь объяснить эту разницу?

Заранее благодарим за любую информацию, связанную с моими вопросами!

UPDATE: На самом деле, похоже, что схема URI для веб-сайтов должна быть ws: или wss: а не как в примере http: или https :. Может быть, это опечатка в примере или что такое сделка для MtGox?

UPDATE: Итак тестирование вещей в браузере , {ws,wss,http,https}://socketio.mtgox.com/mtgox все работает, и я не вижу никакой разницы. С другой стороны, {ws,wss,http,https}://websocket.mtgox.com/mtgox все приводит к ошибке HTTP 400 Bad Request. Глядя в консоль браузера, я получил следующую ошибку:

XMLHttpRequest cannot load http://websocket.mtgox.com/socket.io/1/?t=1367857246057. Origin null is not allowed by Access-Control-Allow-Origin.

Любые идеи, что может происходить?

3 голоса | спросил murrekatt 6 Maypm13 2013, 15:55:51

2 ответа


1

ОК, поэтому, немного поиграв с этим в браузере, я обнаружил несколько вещей, которые, вероятно, были несколько очевидны. :)

Так что даже если нет упоминания о том, что websocket.mtgox.com отличается от socketio.mtgox.com это действительно так, и разница в том, что первая является реальной конечной точкой WebSocket, а последняя является конечной точкой Socket.IO. Конечно, не очень удивительно, глядя на имена;) Теперь для новичка, подобного мне, это было не совсем очевидно, поскольку я предположил, что Socket.IO мог говорить на WebSocket, и, таким образом, конечные точки были одинаковыми. Следовательно, этот вопрос. Здесь не было случая.

Конечная точка Socket.IO принимает все схемы URI {http, https, ws, wss}, в то время как реальная конечная точка WebSocket принимает только ожидаемые {ws, wss}.

В настоящий момент у меня есть все комбинации.

http://socketio.mtgox.com/mtgox
https://socketio.mtgox.com/mtgox
ws://socketio.mtgox.com/mtgox
wss://socketio.mtgox.com/mtgox

ws://websocket.mtgox.com/mtgox
wss://websocket.mtgox.com/mtgox

Непонятно, что схемы URI http и https имеют смысл или если они просто работают. Наверное, именно это.

Короче говоря, есть два хоста: один для Socket.IO и один для WebSocket, и оба работают с TLS или без него.

ответил murrekatt 7 Mayam13 2013, 00:36:05
3
  

Происхождение null теперь разрешено.

Заголовок исходного заголовка не установлен.

Попробуйте запустить код в браузере с фактического имени домена, отличного от примерно: blank.

В хромированном режиме:

var ws = new WebSocket('ws://websocket.mtgox.com/mtgox');
ws.onmessage = function(e){ console.log(e); };

приводит к ошибке примерно с: пустым. Однако от фактического имени домена приводит к успеху.

ответил Charles Smith 6 J0000006Europe/Moscow 2013, 22:48:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132