Hace varias semanas comencé un proyecto de diagrama de nodo de fuerza de resorte utilizando datos de Twitter. Se complicó y decidí que un video era la mejor manera de mostrarlo. Pero, el video fue largo y aburrido. Aquí hay una instantánea temprana.
Half-baked ideaHalf-baked ideaHalf-baked ideaHalf-baked ideaIdea a medias
El Waffle Sunday, le pedí a varios miembros de la familia que revisaran y sugirieran cómo mejorarlo. Todos hicieron buenos comentarios, pero Daniel realmente quería mostrarme algo. Seguí posponiéndolo, hasta que comencé a darme cuenta de que mi video no era tan increíble después de todo.
"Está bien Daniel. ¿Qué tienes?"
"Ve a google y pregunta por Escucha Wikipedia ."
Eso te llevará a http://listen.hatnote.com/ . Observé (y escuché) durante varios minutos preguntándome cómo funcionaba... Hice algunas conjeturas equivocadas. Luego hice clic en el acerca de enlace y seguí mi camino hacia código JavaScript de hatnote alrededor de la línea 123 donde comencé a aprender sobre WebSockets Permiten que un navegador mantenga un puerto bidireccional abierto a un servidor web y, en 2022, la mayoría de los navegadores los admiten. Cuando miró la página Escuchar Wikipedia, el JavaScript que se ejecutaba en su navegador estaba escuchando el WebSocket de wikipedia y obteniendo inmediato notificaciones sobre las actualizaciones de wikipedia. Documentación no necesitas
Twitter tiene su propia API y no usa WebSockets. El video que estaba haciendo era solo una encuesta cada cinco minutos, histórico, no interactivo como las actualizaciones de wikipedia. Quiero usar un WebSocket, así que necesito algo más.
Después de hurgar, descubrí que el grupo de sitios stackexchange (incluido stackoverflow) tiene un WebSocket que es bidireccional. El WebSocket puede suscribirse a todas las publicaciones nuevas y luego suscribirse y cancelar la suscripción a las actualizaciones de esas publicaciones. (Aproximadamente. solía una publicación de intercambio de pila para mi información y está bastante claro que aparecen publicaciones que podrían no ser nuevas).
¿Qué puedo hacer con JSL? WebSockets son cosas del navegador. Después de buscar un poco, encontré un paquete Python WebSocket. El código Python es un calce entre JSL y WebSocket. Estoy bastante seguro de que todo podría hacerse en JSL, pero hay algunas partes feas con las que no quiero lidiar... así que Python.
Hay una pequeña cantidad de código WebSocket genérico en el siguiente JSL y mucho código específico de stackexchange. Si construye una solución similar, no para el intercambio de pilas, probablemente mantendrá el bit de Python y solo usará el resto como una guía aproximada. Hay comentarios en el código y, dado que está empaquetado como un complemento, puede encontrar el código en Ver->complementos, seleccione WebSocket y haga clic en el directorio.
Después de iniciar el complemento, puede pasar un tiempo antes de que las cosas comiencen a suceder. Por lo general, sucede algo cada 10 segundos aproximadamente, especialmente después de que el complemento se haya ejecutado el tiempo suficiente para tener un montón de suscripciones. Si no ha visto ni oído nada después de cinco minutos, probablemente no esté funcionando... vigile la ventana de registro. Decidí necesitar una pantalla de 1920 de ancho por 1080 de alto para este proyecto debido a la cantidad de datos que necesita mostrar. Será difícil reducirlo a escala; la cuadrícula de preguntas 9X9 debe mostrar una descripción, un ícono e indicadores. Todos están ajustados a mano para que se vean bien. La fuente también podría necesitar ajustes. Aquí hay un video breve de cómo se ve después de ejecutarse un poco, pero ejecutar el complemento será más divertido. El complemento es para Windows y JMP 16. Podría funcionar en una Mac, pero no se ha probado.
Si no prueba el complemento, aquí hay un breve fragmento de video.
Si está ejecutando el complemento, puede hacer clic en los elementos y su navegador web lo llevará al artículo.
complemento Demostración de WebSocket usando Stackexchange