{"id":6502,"date":"2015-01-05T04:09:17","date_gmt":"2015-01-05T04:09:17","guid":{"rendered":"https:\/\/dev.railscarma.com\/real-time-framework\/"},"modified":"2021-06-07T05:42:14","modified_gmt":"2021-06-07T05:42:14","slug":"quadro-in-tempo-reale","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/quadro-in-tempo-reale\/","title":{"rendered":"Quadro in tempo reale"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"6502\" class=\"elementor elementor-6502\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b381776 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b381776\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-61bd9226\" data-id=\"61bd9226\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3bc8c4b8 elementor-widget elementor-widget-text-editor\" data-id=\"3bc8c4b8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: justify;\" align=\"LEFT\"><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Real-time&#039;s Framework \u00e8 un sistema di messaggistica bidirezionale persistentemente connesso incredibilmente veloce. \u00c8 un mezzo unico per un&#039;azienda per condurre una relazione online dal vivo con i clienti.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Ci\u00f2 ha l&#039;enorme vantaggio di consentire l&#039;interazione in tempo reale, senza ritardi o aggiornamenti di pagina, per creare una relazione duratura e bidirezionale con ciascun utente online.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\"><b>Funziona con due componenti principali:<\/b><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">L&#039;abilitazione del web live \u00e8 ORTC (Open Real-time Connectivity):<\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">\u00a0<\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Un sistema di messaggistica molti-a-molti in tempo reale ospitato sul cloud sicuro, veloce e altamente scalabile per app Web e mobili. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"font-size: medium;\">\n<\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Qui possiamo utilizzare il client ORTC invece dello snippet di codice xRTML fornito da realtime.co per le connessioni in tempo reale.<\/span><\/span><\/p>\n<span style=\"color: #000000;\"><span style=\"font-size: medium;\">Il linguaggio del Live Web xRTML (Extensible Realtime Multiplatform Language): un set di strumenti API per creare app Web e mobili in tempo reale con un&#039;API facile da usare basata su una libreria JavaScript.<\/span><\/span><span style=\"font-size: medium;\">\n<\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">\u00a0\u00a0<\/span><\/span>\n<p style=\"text-align: justify;\" align=\"LEFT\"><strong><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Passaggi:<\/span><\/span><span style=\"font-size: medium;\">\n<\/span><\/strong><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Includi questo plugin js<\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">\u00a0<\/span><\/span><a href=\"http:\/\/dfdbz2tdq3k01.cloudfront.net\/js\/2.1.0\/ortc.js\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #1c5c76;\"><span style=\"font-size: medium;\"><i><span style=\"text-decoration: underline;\">http:\/\/dfdbz2tdq3k01.cloudfront.net\/js\/2.1.0\/ortc.js<\/span><\/i><\/span><\/span><\/a><\/p>\n<span style=\"color: #000000;\"><span style=\"font-size: medium;\">Per inviare messaggi in tempo reale:<\/span><\/span>\n<blockquote>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">finestra.onload = funzione () {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">loadOrtcFactory(IbtRealTimeSJType, funzione (fabbrica, errore) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">se (errore!= nullo) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">alert(&quot;Errore di fabbrica: &quot; + errore.messaggio);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">} altro {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">se (fabbrica!= null) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Crea il client ORTC<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">var ortcClient = factory.createClient();<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Imposta le propriet\u00e0 del client ORTC<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.setId(&#039;clientId&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.setConnectionMetadata(&#039;clientConnMeta&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">ortcClient.setClusterUrl(&#039;<\/span><\/span><span style=\"color: #1c5c76;\"><span style=\"font-family: Times New Roman,serif;\"><span style=\"font-size: medium;\"><span style=\"text-decoration: underline;\">http:\/\/ortc-developers.realtime.co\/server\/2.1\/<\/span><\/span><\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">&#8216;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onConnected = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Connesso<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: medium;\">\n\/\/ Primo canale<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.subscribe(&#039;canale1&#039;, true, funzione (ortc, canale, messaggio) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"font-size: medium;\">console.log(messaggio)<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.unsubscribe(canale);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\"> \/\/ Secondo canale<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.subscribe(&#039;canale2&#039;, true, funzione (ortc, canale, messaggio) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<span style=\"font-size: medium;\">console.log(messaggio)<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.unsubscribe(canale);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onDisconnected = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Disconnesso<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\u00a0\u00a0 <span style=\"font-size: medium;\">\n\/\/Invia i tuoi messaggi qui<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onSubscription = funzione (ortc, canale) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Iscritto al canale &#039;canale&#039;);<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.send(canale, &#039;Messaggio al canale&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onUnsubscription = funzione (ortc, canale) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-family: Times New Roman,serif;\"><span style=\"font-size: medium;\">\/\/ Annullamento dell&#039;iscrizione al canale &#039;canale&#039;);<\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.disconnect();<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onException = funzione (ortc, eccezione) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Si \u00e8 verificata un&#039;eccezione: &#039;exception&#039;<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onReconnecting = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Tentativo di riconnessione<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onReconnected = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Riconnesso<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: medium;\">ortcClient.connect(&#039;myApplicationKey&#039;, &#039;myAuthenticationToken&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">}<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">}<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">};<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"font-size: medium;\"> <span style=\"color: #000000;\">Per ricevere messaggi da Realtime al frontend dell&#039;app:<\/span>\n<span style=\"color: #000000;\"><i>\/\/Qui rimuovi\u00a0<\/i><\/span><span style=\"color: #000000;\"><i>ortcClient.onSubscription\u00a0<\/i><\/span><span style=\"color: #000000;\"><i>funzione<\/i><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">finestra.onload = funzione () {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">loadOrtcFactory(IbtRealTimeSJType, funzione (fabbrica, errore) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">se (errore!= nullo) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">alert(&quot;Errore di fabbrica: &quot; + errore.messaggio);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">} altro {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">se (fabbrica!= null) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Crea il client ORTC<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">var ortcClient = factory.createClient();<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Imposta le propriet\u00e0 del client ORTC<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.setId(&#039;clientId&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.setConnectionMetadata(&#039;clientConnMeta&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">ortcClient.setClusterUrl(&#039;<\/span><\/span><span style=\"color: #1c5c76;\"><span style=\"font-size: medium;\"><span style=\"text-decoration: underline;\">http:\/\/ortc-developers.realtime.co\/server\/2.1\/<\/span><\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">&#8216;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-family: Times New Roman,serif;\"><span style=\"font-size: medium;\">ortcClient.onConnected = funzione (ortc) {<\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Connesso<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: medium;\">\n\/\/ Primo canale<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.subscribe(&#039;canale1&#039;, true, funzione (ortc, canale, messaggio) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span style=\"font-size: medium;\">console.log(messaggio)<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.unsubscribe(canale);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\"> \/\/ Secondo canale<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.subscribe(&#039;canale2&#039;, true, funzione (ortc, canale, messaggio) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<span style=\"font-size: medium;\">console.log(messaggio)<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.unsubscribe(canale);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onDisconnected = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Disconnesso<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<span style=\"font-size: medium;\">}<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onUnsubscription = funzione (ortc, canale) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Annullamento dell&#039;iscrizione al canale &#039;canale&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.disconnect();<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-family: Times New Roman,serif;\"><span style=\"font-size: medium;\">};<\/span><\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onException = funzione (ortc, eccezione) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Si \u00e8 verificata un&#039;eccezione: &#039;exception&#039;<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onReconnecting = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Tentativo di riconnessione<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.onReconnected = funzione (ortc) {<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">\/\/ Riconnesso<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">};<\/span>\n<\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">ortcClient.connect(&#039;myApplicationKey&#039;, &#039;myAuthenticationToken&#039;);<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">}<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">}<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: medium;\">});<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">};<\/span><\/span><\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\"><b>Nota conclusiva:<\/b><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Il framework in tempo reale \u00e8 ormai un sistema di messaggistica emergente e in rapida crescita che aiuta l&#039;azienda a servire i propri clienti a un ritmo molto rapido e quindi anche a evitare il lasso di tempo necessario per fornire i servizi. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Ci\u00f2 d\u00e0 anche un vantaggio competitivo all&#039;azienda, poich\u00e9 \u00e8 il sistema adatto al mondo degli affari di oggi, in costante crescita.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><em>Per saperne di pi\u00f9 :\u00a0<\/em><\/p>\n\n<h5 class=\"entry-title\"><a href=\"\/it\/blog\/binari-3\/introduzione-guide-api\/\" target=\"_blank\" rel=\"noopener noreferrer\">Un&#039;introduzione all&#039;API Rails<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/it\/blog\/gestione\/impostare-lambiente-ferroviario\/\" target=\"_blank\" rel=\"noopener noreferrer\">Configura l&#039;ambiente Rails<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/it\/blog\/articoli-tecnici\/image-manipulation\/\" target=\"_blank\" rel=\"noopener noreferrer\">Manipolazione delle immagini<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/it\/blog\/articoli-tecnici\/installare-le-rotaie-ruby\/\" target=\"_blank\" rel=\"noopener noreferrer\">Come installare Ruby sui binari<\/a><\/h5>\n<a href=\"\/it\/contattaci\/\">Mettiti in contatto con noi.<\/a>\n<p style=\"text-align: justify;\" align=\"LEFT\"><strong>Lubaib CJ<\/strong><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\">Sviluppatore senior di Ruby on Rails<\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1698660 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1698660\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-53a1ff94\" data-id=\"53a1ff94\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7f3363e9 elementor-widget elementor-widget-heading\" data-id=\"7f3363e9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Iscriviti per gli ultimi aggiornamenti<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76700efb elementor-widget elementor-widget-shortcode\" data-id=\"76700efb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"caricatore\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Indirizzo e-mail\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nome\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"sottoscrivi\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"it\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Articoli correlati<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"gemma di Kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gemma Kaminari\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/gemma-di-kaminari\/?related_post_from=37277\">\r\n        Gemma Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"perch\u00e9 assumere sviluppatori di Ruby on Rails nel 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/perche-assumere-sviluppatori-di-ruby-on-rails\/?related_post_from=30627\">\r\n        Perch\u00e9 assumere sviluppatori Ruby on Rails nel 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/importanza-dellarchitettura-software-nello-sviluppo-di-software-aziendale\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Importanza dell&#039;architettura software nello sviluppo di software aziendale\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/importanza-dellarchitettura-software-nello-sviluppo-di-software-aziendale\/?related_post_from=36250\">\r\n        Importanza dell&#039;architettura software nello sviluppo di software aziendale  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: i migliori IDE per lo sviluppo di Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/ruby-ide-le-migliori-idee-per-lo-sviluppo-di-ruby-on-rails\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"LE MIGLIORI IDEE PER LO SVILUPPO DI RUBY ON RAILS\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: i migliori IDE per lo sviluppo di Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/it\/blog\/roro\/ruby-ide-le-migliori-idee-per-lo-sviluppo-di-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE: i migliori IDE per lo sviluppo di Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Real-time\u2019s Framework is a blindingly fast bi-directional persistently connected messaging system. It\u2019s a unique means for a company to conduct a live online relationship with clients. This has the massive advantage of allowing interaction to happen live in real-time, without delays or page refreshes, to create a durable and bidirectional relationship with each online user. &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/it\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) with Examples<\/span> Leggi altro \"<\/a><\/p>","protected":false},"author":1,"featured_media":32067,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[615],"class_list":["post-6502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles","tag-real-time-framework"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Real-time Framework - RailsCarma Blog<\/title>\n<meta name=\"description\" content=\"Real-time\u2019s Framework is a blindingly fast bi-directional persistently connected messaging system.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/quadro-in-tempo-reale\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Real-time Framework - RailsCarma Blog\" \/>\n<meta property=\"og:description\" content=\"Real-time\u2019s Framework is a blindingly fast bi-directional persistently connected messaging system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/quadro-in-tempo-reale\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-05T04:09:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-07T05:42:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Real-time Framework\",\"datePublished\":\"2015-01-05T04:09:17+00:00\",\"dateModified\":\"2021-06-07T05:42:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\"},\"wordCount\":541,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg\",\"keywords\":[\"Real-time Framework\"],\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\",\"name\":\"Real-time Framework - RailsCarma Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg\",\"datePublished\":\"2015-01-05T04:09:17+00:00\",\"dateModified\":\"2021-06-07T05:42:14+00:00\",\"description\":\"Real-time\u2019s Framework is a blindingly fast bi-directional persistently connected messaging system.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Real-time Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Framework in tempo reale - Blog RailsCarma","description":"Real-time&#039;s Framework \u00e8 un sistema di messaggistica bidirezionale persistentemente connesso incredibilmente veloce.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/quadro-in-tempo-reale\/","og_locale":"it_IT","og_type":"article","og_title":"Real-time Framework - RailsCarma Blog","og_description":"Real-time\u2019s Framework is a blindingly fast bi-directional persistently connected messaging system.","og_url":"https:\/\/www.railscarma.com\/it\/blog\/articoli-tecnici\/quadro-in-tempo-reale\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2015-01-05T04:09:17+00:00","article_modified_time":"2021-06-07T05:42:14+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Real-time Framework","datePublished":"2015-01-05T04:09:17+00:00","dateModified":"2021-06-07T05:42:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/"},"wordCount":541,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg","keywords":["Real-time Framework"],"articleSection":["Technical Articles"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/","name":"Framework in tempo reale - Blog RailsCarma","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg","datePublished":"2015-01-05T04:09:17+00:00","dateModified":"2021-06-07T05:42:14+00:00","description":"Real-time&#039;s Framework \u00e8 un sistema di messaggistica bidirezionale persistentemente connesso incredibilmente veloce.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2015\/01\/realtime-framework-1.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Real-time Framework"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Societ\u00e0 di sviluppo Ruby on Rails specializzata nello sviluppo offshore","description":"RailsCarma \u00e8 una societ\u00e0 di sviluppo Ruby on Rails a Bangalore. Siamo specializzati nello sviluppo offshore di Ruby on Rails con sede negli Stati Uniti e in India. Assumi sviluppatori esperti di Ruby on Rails per la migliore esperienza Web.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"amministratore","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts\/6502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/comments?post=6502"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/posts\/6502\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media\/32067"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/media?parent=6502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/categories?post=6502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/it\/wp-json\/wp\/v2\/tags?post=6502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}