Diverse settimane fa ho avviato un progetto di diagramma dei nodi a forza di molla utilizzando i dati di Twitter. È diventato complicato e ho deciso che un video era il modo migliore per mostrarlo. Ma il video era lungo e noioso. Ecco una prima istantanea.
Half-baked ideaHalf-baked ideaHalf-baked ideaHalf-baked ideaIdea semicotta
A Waffle Sunday, ho chiesto a diversi membri della famiglia di recensire e suggerire come migliorarlo. Tutti hanno fatto buoni commenti, ma Daniel voleva davvero mostrarmi qualcosa. Ho continuato a rimandarlo, fino a quando ho iniziato a rendermi conto che il mio video non era poi così straordinario.
"Va bene Daniele. Cosa hai ottenuto?"
"Vai su Google e chiedi Ascolta Wikipedia ."
Questo ti porterà a http://ascolta.hatnote.com/ . Ho guardato (e ascoltato) per diversi minuti chiedendomi come funzionasse... Ho fatto delle ipotesi sbagliate. Poi ho cliccato su Di link e ho seguito la mia strada per codice JavaScript di Hatnote intorno alla riga 123 dove ho iniziato a conoscere WebSocket .Consentono a un browser di mantenere aperta una porta bidirezionale a un server Web e nel 2022 la maggior parte dei browser li supporta. Quando hai guardato la pagina Ascolta Wikipedia, il JavaScript in esecuzione nel tuo browser stava ascoltando il WebSocket di Wikipedia e riceveva immediato notifiche sugli aggiornamenti di wikipedia. Documentazione non ti serve.
Twitter ha una propria API e non utilizza WebSocket. Il video che stavo realizzando era solo un sondaggio ogni cinque minuti, storico, non interattivo come gli aggiornamenti di Wikipedia. Voglio usare un WebSocket, quindi ho bisogno di qualcos'altro.
Dopo aver frugato, ho scoperto che il gruppo di siti StackExchange (incluso StackOverflow) ha un WebSocket bidirezionale. Il WebSocket può sottoscrivere tutti i nuovi post e quindi iscriversi e annullare l'iscrizione agli aggiornamenti su tali post. (Circa. ero solito un post di scambio di stack per mia informazione ed è abbastanza chiaro che vengono visualizzati post che potrebbero non essere nuovi.)
Cosa posso fare con JSL? I WebSocket sono cose del browser. Dopo aver cercato un po', ho trovato un pacchetto Python WebSocket. Il codice Python è a spessore tra JSL e WebSocket. Sono abbastanza sicuro che tutto potrebbe essere fatto in JSL, ma ci sono alcune parti brutte con cui non voglio occuparmi ... quindi Python.
C'è una piccola quantità di codice WebSocket generico nel seguente JSL e molto codice specifico di StackExchange. Se crei una soluzione simile, non per stackexchange, probabilmente manterrai il bit Python e utilizzerai il resto solo come guida approssimativa. Ci sono commenti nel codice e poiché è impacchettato come componente aggiuntivo puoi trovare il codice da Visualizza-> componenti aggiuntivi, seleziona WebSocket, fai clic sulla directory.
Dopo aver avviato il componente aggiuntivo, potrebbe essere necessario un po' di tempo prima che le cose inizino a verificarsi. Generalmente accade qualcosa ogni 10 secondi circa, soprattutto dopo che il componente aggiuntivo è stato eseguito abbastanza a lungo da avere un sacco di abbonamenti. Se dopo cinque minuti non hai visto e sentito nulla, probabilmente non funziona... tieni d'occhio la finestra del registro. Ho deciso di aver bisogno di un display largo 1920 per 1080 alto per questo progetto a causa della quantità di dati che deve mostrare. Sarà difficile ridimensionarlo; la griglia di domande 9X9 deve mostrare una descrizione, un'icona e degli indicatori. Sono tutti ottimizzati a mano per sembrare OK. Anche il carattere potrebbe aver bisogno di modifiche. Ecco un breve video di come appare dopo aver eseguito per un po', ma l'esecuzione del componente aggiuntivo sarà più divertente. Il componente aggiuntivo è per Windows e JMP 16. Potrebbe funzionare su un Mac ma non è stato testato.
Se non provi il componente aggiuntivo, ecco un breve frammento di video.
Se stai eseguendo il componente aggiuntivo, puoi fare clic sugli elementi e il tuo browser web ti porterà all'articolo.
Aggiungere Demo di WebSocket utilizzando Stackexchange