2012-02-15 3 views
8

Новая библиотека IOS-websocket, SocketRocket, выглядит действительно потрясающе, и проект примера чата действительно сладок. Пример чат-сервера написан на Python, которого я не знаю. Я немного знаком с socket.io на node.js и предпочитаю попробовать javascript. Я попытался подключить приложение симулятора SocketRocket TestChat к node.js (6.10) socket.io (0.8.7), но соединение было отклонено. (Кроме того, я тоже не специалист по узлам, так что это может быть глупый вопрос).Как использовать SocketRocket с socket.io?

В недавнем ответе на SO question, mikelikespie сказал op: «Я предлагаю обновить ваш стек, чтобы использовать только что выпущенную библиотеку iOS WebSocket».

Что это значит? Что необходимо, чтобы библиотека SocketRocket могла разговаривать с узлом socket.io server? Любой образец кода или предложения приветствуются.

ответ

8

Ну, у вас есть собственный протокол, построенный на транспортных протоколах, таких как websockets или длительный опрос, а SocketRocket - это просто библиотека websocket, не более того. Socket.io также имеет некоторую аутентификацию, поэтому его невозможно использовать с обычными сетевыми сокетами. То, что я предлагаю вам использовать, - это просто сервер websocket, не более того. Например, ws, который должен быть совместим. Есть и другие библиотеки, но, ws Я считаю, что активно развивается на данный момент и новее других.

Вы также можете сделать свой клиентский разъем socket.io совместимым, но я думаю, что он не используется. Вот спецификации для него: https://github.com/LearnBoost/socket.io-spec

Надеюсь, я помог.

+0

Библиотека ws действительно выглядит как путь. Я не смог получить рабочую реализацию с помощью ws, но это ограничение моих навыков работы с JavaScript. Я отмечаю это как ответ, потому что это имеет смысл, и нет других ответов. Благодарю. – seeker12

3

socket.IO-objc на GitHub выглядит зрелым Socket.IO/Objective C Библиотека

Он использует SocketRocket обрабатывать соединения WebSocket.

Это позволит вам иметь сервер сокетов, который поддерживает более старые браузеры (ухудшается при длительном опросе и т. Д.) И по-прежнему доступен для вашего приложения iOS через SocketRocket.

+2

Ссылка на библиотеку для более ранних версий Socket.IO. Для проекта, который работает с socket.io v 0.9+ и 1.0, попробуйте следующее: [socket.IO-objc] (https://github.com/francoisp/socket.IO-objc) – Suz

2

Я только что реализовал активное соединение сокетов между сервером Node.JS и приложением iOS, используя this library. Я использовал этот, потому что README на Socket.IO-ObjC говорит

Текущая версия этой библиотеки еще не поддерживает socket.io v1.0. Итак, если вы хотите использовать socket.io-objc, вернитесь к v0.9.x.

, но я всегда хочу использовать последнюю версию для всего. Поэтому, если вы хотите использовать Socket.IO v1.0, вы можете использовать тот, который указан на ссылке, приведенной в нескольких строках выше.

Смежные вопросы