2012-08-03 40 views
5

Para mi sitio web, escribí un servidor WebSockets en C# (el idioma preferido para codificar) que usa Fleck y tiene aproximadamente 600 líneas de código. Todo parece funcionar decentemente (un poco inestable a veces. No estoy seguro de si es un problema con mi código o con Fleck).¿Solución moderna para servidores WebSocket?

Sin embargo, quiero pasar esto de mi computadora a un dominio real y no estoy seguro si hay proveedores de hosting que admitan aplicaciones de consola .NET como esa.

Estaba pensando que tal vez tendría que volver a escribirlo en otro idioma como PHP pero estoy un poco inseguro acerca de la idea. ¿Hay proveedores de hosting populares que admitan lo que estoy buscando? E incluso si lo son, ¿es una buena idea? Me imagino que puede ser menos seguro o más lento que la solución típica de usar Perl, PHP o Python para servidores. (muchas P)

Por último, si fue una buena idea reescribir, no estoy seguro de en qué idioma lo escribiría. Ha pasado un tiempo y no estoy seguro de lo que todos sigan usando. ¿Todavía se considera que PHP es el servidor web más compatible y seguro?

¿Qué implementación de WebSockets es la más adecuada? Me tomó un tiempo encontrar a Fleck y parece haber el doble de derivados de PHP y me siento un poco abrumado de nuevo. Además, una gran cantidad de publicaciones en Stackoverflow sobre WebSockets datan de hace dos años cuando no contaban con el soporte necesario.

Disculpa por mi ingenuidad y falta de enfoque en mi pregunta, pero como puedes ver, estoy un poco confundido sobre cuál debería ser mi curso de acción aquí y estoy buscando información. Gracias por leer.

Respuesta

5

Probablemente el servidor WebSocket más popular es Socket.IO. Se implementa en Node (Javascript) y tiene inconvenientes con Long-Polling/AJAX cuando el soporte de WebSockets no está disponible.

La implementación mejor soportada de WebSockets es el proyecto python pywebsocket que es utilizado tanto por Mozilla como por Google para desarrollar y probar las implementaciones de su navegador de cliente. Además, pywebsocket está diseñado para integrarse fácilmente con Apache permitiéndole ejecutar su servidor web y servicio de websocket en el mismo puerto (s).

Si su aplicación solo necesita un servicio de mensajería basado en WebSocket y es en gran parte de igual a igual, puede considerar el uso de un servicio WebSocket comercial como Pusher. Eso podría evitar tener que alojar y administrar su propio servidor para esto.

No recomendaría PHP para servidores WebSocket. Hasta hace poco no existía una implementación de PHP que admitiera la variación del protocolo WebSocket más antiguo y más nuevo. El más viejo todavía es utilizado por los dispositivos iOS actuales y la versión más nueva de IETF 6455 del protocolo es utilizada por Chrome, Firefox, IE10 y el relleno de WebSocket basado en Flash web-socket-js.

Además, usted pregunta si aún se considera que PHP es el servidor web más compatible y seguro. Ciertamente, PHP siempre ha tenido una gran documentación y ejemplos y un despliegue muy amplio, por lo que podría argumentarse que cuenta con un buen soporte. Sin embargo, PHP se encuentra en la parte inferior de la lista en términos de seguridad. Ciertamente, no volvería a escribir su aplicación desde cero en PHP.

Si le gustan los idiomas tipo C, podría considerar libwebsockets que podría usar para construir un servidor C o C++ WebSocket.Andy Green desarrolló y mantiene libwebsockets y participó en el grupo de trabajo de IETF que desarrolló el estándar.

Ruby es otro idioma/comunidad que ha visto una gran cantidad de absorción de WebSockets (quizás segundo detrás de Node). La biblioteca de websocket más popular para Ruby es em-weboskcet.

+1

Esta es una buena lista, por mi parte, agregaría que si quieres usar Python y estás dispuesto a ofrecer un poco de soporte para el rendimiento (o simplemente prefieres una solución minimalista), echa un vistazo a gevent-websocket http: //www.gelens.org/code/gevent-websocket/ – Dreen

-1

puede probar node.js, es "nuevo" y se ve bien. Saludos

+1

El nodo (node.js) no tiene (todavía) soporte de websocket incorporado. Quizás quisiste decir el popular Socket.IO que se implementa en Node. – kanaka