2011-02-09 17 views
9

Estoy desarrollando algún tipo de juego de tablero multijugador masivo. Mi solución es node.js socket.io en el servidor. Necesito una solución para la implementación de algún tipo de socket object-c que se comunique con socket.io para enviar y recibir objetos json como string. No usaré webkit con websocket. ¿Hay alguna posibilidad? El servidor mantendrá el estado del juego, los clientes de iphone enviarán acciones al servidor y recibirán cambios en el servidor.Comunicación de socket de iPhone Objective-C con Socket.IO

+0

Esta pregunta está fuera del tema; [Las preguntas que solo solicitan recomendaciones de bibliotecas u otros recursos externos están fuera del tema de Stack Overflow] (// meta.stackoverflow.com/q/251134/2747593). OP, si todavía tiene este problema, entonces comience a escribir el código, y regrese cuando tenga un problema más específico. Asegúrese de mostrarnos [lo que ha intentado] (http://whathaveyoutried.com) e incluir un [Ejemplo mínimo, completo y verificable] (// stackoverflow.com/help/mcve). –

Respuesta

5

O echar un vistazo a cocoaasyncsocket:

CocoaAsyncSocket compatible con TCP y UDP. La clase AsyncSocket es para TCP, y la clase AsyncUdpSocket es para UDP. Cada clase se describe a continuación.

AsyncSocket es una biblioteca de red de conexión TCP/IP que envuelve CFSocket y CFStream. Ofrece operación asincrónica , y una clase de cacao nativa completa con soporte de delegado. Aquí son las características clave:

  • cola no bloqueante lee y escribe, con tiempos de espera opcionales. Usted dígale qué leer o escribir, y lo llamará cuando esté listo.

  • Aceptación automática del zócalo. Si le dice que acepte conexiones, lo llamará con nuevas instancias de sí mismo para cada conexión. Puede, por supuesto, desconectarlos inmediatamente.

  • Soporte delegado. Los errores, las conexiones, las aceptaciones, las lecturas de finalización, las terminaciones de escritura, el progreso y las desconexiones dan como resultado una llamada a su método delegado.

  • Basado en bucle de ejecución, no basado en subprocesos. Aunque puede usarlo en hilos principales o de trabajo, no es necesario. Llama a los métodos de delegado de forma asincrónica utilizando NSRunLoop. Los métodos de delegado incluyen un parámetro de socket, que le permite distinguir entre muchas instancias.

  • Autónomo en una clase. No necesita ensuciar con secuencias o zócalos. La clase maneja todo eso.

  • Soporte para transmisiones TCP sobre IPv4 e IPv6.

La biblioteca es de dominio público, escrito originalmente por Dustin Voss. Ahora disponible en un entorno público para permitir y fomentar su apoyo continuo.

AsyncUdpSocket es una biblioteca de red de sockets UDP/IP que envuelve CFSocket. Funciona casi exactamente como la versión de TCP, pero está diseñado específicamente para UDP.Esto incluye operaciones de envío/recepción sin bloqueo en cola operaciones, soporte de delegado completo, clase autocontenida basada en bucle de ejecución, y soporte para IPv4 e IPv6.

+0

¿Funcionará esta biblioteca con Socket.IO desde el primer momento? – greenimpala

11

03/19/2015 editado: Los chicos Socket.IO crearon su propia biblioteca IOS que admita Socket.IO v1.0 +. Consíguelo aquí: https://github.com/socketio/socket.io-client-swift


vieja respuesta

me biblioteca socket.io de fpotter actualizado para funcionar con la versión 0.7.2 - 0.9.x.
Soporta sockets y XHRpolling.

https://github.com/pkyeck/socket.IO-objc

Tal vez usted quiere comprobarlo.

+0

Hola pkyech. Estoy usando tu biblioteca y funciona perfectamente con mi aplicación iOS7. Ahora quiero conectarme una vez y administrar los eventos de cada viewControllers por NSObject para evitar demasiados connect/disconnect. ¿Tienes algún tutorial sobre eso? – Maziyar

+0

lo siento, pero no, no hay un tutorial para esto. – pkyeck

+0

Estoy agregando la biblioteca [link] (https://github.com/pkyeck/socket.IO-objc) en Xcode 7 e iOS 9. Pero después de la conexión solo me está dando una respuesta de 'error code 400'. Sin embargo, si lo estoy haciendo rápido, entonces se conecta correctamente. ¿Esta biblioteca de objetivo c está obsoleta? @pkyeck –

Cuestiones relacionadas