{"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":"cadre-en-temps-reel","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/cadre-en-temps-reel\/","title":{"rendered":"Cadre en temps r\u00e9el"},"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's Framework est un syst\u00e8me de messagerie bidirectionnel \u00e0 connexion permanente d'une rapidit\u00e9 fulgurante. Il s'agit d'un moyen unique pour une entreprise de mener une relation en ligne avec ses clients.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Cela pr\u00e9sente l'\u00e9norme avantage de permettre une interaction en direct et en temps r\u00e9el, sans d\u00e9lai ni rafra\u00eechissement de page, afin de cr\u00e9er une relation durable et bidirectionnelle avec chaque utilisateur en ligne.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\"><b>Il fonctionne avec deux composants principaux :<\/b><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">L'ORTC (Open Real-time Connectivity) permet d'acc\u00e9der au web en direct :<\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">\u00a0<\/span><\/span><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Un syst\u00e8me de messagerie s\u00e9curis\u00e9, rapide et hautement \u00e9volutif, h\u00e9berg\u00e9 dans le nuage et fonctionnant en temps r\u00e9el, pour les applications web et mobiles. <\/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;\">Ici, nous pouvons utiliser le client ORTC au lieu de l'extrait de code xRTML fourni par realtime.co pour les connexions en temps r\u00e9el.<\/span><\/span><\/p>\n<span style=\"color: #000000;\"><span style=\"font-size: medium;\">Le langage du Live Web s xRTML (Extensible Realtime Multiplatform Language) : Un ensemble d'outils d'API pour construire des applications web et mobiles en temps r\u00e9el avec une API facile \u00e0 utiliser bas\u00e9e sur une biblioth\u00e8que 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;\">Pas:<\/span><\/span><span style=\"font-size: medium;\">\n<\/span><\/strong><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Inclure ce 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;\">Pour l'envoi de messages en temps r\u00e9el :<\/span><\/span>\n<blockquote>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">window.onload = function () {<\/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, function (factory, error) {<\/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;\">if (error != 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<span style=\"font-size: medium;\">alert(\"Erreur d'usine : \" + error.message) ;<\/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;\">} else {<\/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;\">if (factory != 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;\">\/\/ Cr\u00e9er un 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;\">\/\/ D\u00e9finir les propri\u00e9t\u00e9s du 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('clientId') ;<\/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('clientConnMeta') ;<\/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(')<\/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;\">\u2018) ;<\/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 = function (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;\">\/\/ Connect\u00e9<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: medium;\">\n\/\/ Premi\u00e8re cha\u00eene<\/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('channel1', true, function (ortc, channel, message) {<\/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(message)<\/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(channel) ;<\/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;\"> \/\/ Deuxi\u00e8me canal<\/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('channel2', true, function (ortc, channel, message) {<\/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(message)<\/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(channel) ;<\/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 = function (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;\">\/\/ D\u00e9connect\u00e9<\/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\/\/Envoyez vos messages ici<\/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.onSubscribed = function (ortc, channel) {<\/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;\">\/\/ Abonn\u00e9 au canal 'channel') ;<\/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(channel, 'Message au canal') ;<\/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.onUnsubscribed = function (ortc, channel) {<\/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;\">\/\/ Se d\u00e9sabonne du canal 'channel') ;<\/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 = function (ortc, exception) {<\/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;\">\/\/ Une exception s'est produite : 'exception'<\/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 = function (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;\">\/\/ Essai de reconnexion<\/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 = function (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;\">\/\/ Reconnect\u00e9(e)<\/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('myApplicationKey', 'myAuthenticationToken') ;<\/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;\">Pour la r\u00e9ception de messages du temps r\u00e9el vers l'application frontale :<\/span>\n<span style=\"color: #000000;\"><i>\/Ici enlever\u00a0<\/i><\/span><span style=\"color: #000000;\"><i>ortcClient.onSubscribed\u00a0<\/i><\/span><span style=\"color: #000000;\"><i>fonction<\/i><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">window.onload = function () {<\/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, function (factory, error) {<\/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;\">if (error != 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<span style=\"font-size: medium;\">alert(\"Erreur d'usine : \" + error.message) ;<\/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;\">} else {<\/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;\">if (factory != 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;\">\/\/ Cr\u00e9er un 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;\">\/\/ D\u00e9finir les propri\u00e9t\u00e9s du 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('clientId') ;<\/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('clientConnMeta') ;<\/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(')<\/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;\">\u2018) ;<\/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 = function (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;\">\/\/ Connect\u00e9<\/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\/\/ Premi\u00e8re cha\u00eene<\/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('channel1', true, function (ortc, channel, message) {<\/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(message)<\/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(channel) ;<\/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;\"> \/\/ Deuxi\u00e8me canal<\/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('channel2', true, function (ortc, channel, message) {<\/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(message)<\/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(channel) ;<\/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 = function (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;\">\/\/ D\u00e9connect\u00e9<\/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.onUnsubscribed = function (ortc, channel) {<\/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;\">\/\/ Se d\u00e9sabonne du canal 'channel') ;<\/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 = function (ortc, exception) {<\/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;\">\/\/ Une exception s'est produite : 'exception'<\/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 = function (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;\">\/\/ Essai de reconnexion<\/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 = function (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;\">\/\/ Reconnect\u00e9(e)<\/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('myApplicationKey', 'myAuthenticationToken') ;<\/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>Note conclusive :<\/b><\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Le cadre en temps r\u00e9el est d\u00e9sormais un syst\u00e8me de messagerie \u00e9mergent et en pleine expansion qui aide les entreprises \u00e0 servir leurs clients \u00e0 un rythme tr\u00e8s rapide et donc \u00e0 \u00e9viter les d\u00e9calages dans la fourniture des services. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><span style=\"color: #000000;\"><span style=\"font-size: medium;\">Cela conf\u00e8re \u00e9galement un avantage concurrentiel \u00e0 l'entreprise, car il s'agit d'un syst\u00e8me adapt\u00e9 au monde des affaires, qui conna\u00eet une croissance r\u00e9currente.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\"><em>En savoir plus :\u00a0<\/em><\/p>\n\n<h5 class=\"entry-title\"><a href=\"\/fr\/blog\/rails-3\/api-rails-dintroduction\/\" target=\"_blank\" rel=\"noopener noreferrer\">Une introduction \u00e0 l&#039;API Rails<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/fr\/blog\/gestion\/definir-lenvironnement-des-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">Configurer l&#039;environnement Rails<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/manipulation-dimages\/\" target=\"_blank\" rel=\"noopener noreferrer\">Manipulation d&#039;images<\/a><\/h5>\n<h5 class=\"entry-title\"><a href=\"\/fr\/blog\/articles-techniques\/installer-des-rails-ruby\/\" target=\"_blank\" rel=\"noopener noreferrer\">Comment installer Ruby sur Rails<\/a><\/h5>\n<a href=\"\/fr\/contactez-nous\/\">Prenez contact avec nous.<\/a>\n<p style=\"text-align: justify;\" align=\"LEFT\"><strong>Lubaib C J<\/strong><\/p>\n<p style=\"text-align: justify;\" align=\"LEFT\">D\u00e9veloppeur senior 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\">Abonnez-vous pour les derni\u00e8res mises \u00e0 jour<\/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=\"chargeur\"><\/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=\"Adresse 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=\"Nom\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"S&#039;abonner\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/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\">Articles Similaires<\/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=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-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=\"joyau 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=\"Gemme de Kaminari\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/articles-techniques\/joyau-kaminari\/?related_post_from=37277\">\r\n        Gemme de Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-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=\"pourquoi embaucher des d\u00e9veloppeurs Ruby on Rails en 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=\"Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/pourquoi-embaucher-des-developpeurs-ruby-on-rails\/?related_post_from=30627\">\r\n        Pourquoi engager des d\u00e9veloppeurs Ruby on Rails en 2026 ?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?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=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" 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=\"Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/importance-de-larchitecture-logicielle-dans-le-developpement-de-logiciels-dentreprise\/?related_post_from=36250\">\r\n        Importance de l&#039;architecture logicielle dans le d\u00e9veloppement de logiciels d&#039;entreprise  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-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=\"MEILLEURES ID\u00c9ES POUR LE D\u00c9VELOPPEMENT DE 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\u00a0: les meilleurs IDE pour le d\u00e9veloppement Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/fr\/blog\/ror\/ruby-ide-les-meilleures-idees-pour-le-developpement-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE\u00a0: les meilleurs IDE pour le d\u00e9veloppement 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\/fr\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Guide de correspondance des expressions rationnelles en Ruby (2026) avec exemples<\/span> Lire la suite \u00bb<\/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\/fr\/blog\/articles-techniques\/cadre-en-temps-reel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/blog\/articles-techniques\/cadre-en-temps-reel\/\" \/>\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=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\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\":\"fr-FR\",\"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\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@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\":\"fr-FR\",\"@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":"Cadre de travail en temps r\u00e9el - RailsCarma Blog","description":"Le cadre de Real-time est un syst\u00e8me de messagerie bidirectionnel \u00e0 connexion permanente d'une rapidit\u00e9 fulgurante.","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\/fr\/blog\/articles-techniques\/cadre-en-temps-reel\/","og_locale":"fr_FR","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\/fr\/blog\/articles-techniques\/cadre-en-temps-reel\/","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":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"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":"fr-FR","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":"Cadre de travail en temps r\u00e9el - 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":"Le cadre de Real-time est un syst\u00e8me de messagerie bidirectionnel \u00e0 connexion permanente d'une rapidit\u00e9 fulgurante.","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/real-time-framework\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@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 - Soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails sp\u00e9cialis\u00e9e dans le d\u00e9veloppement offshore","description":"RailsCarma est une soci\u00e9t\u00e9 de d\u00e9veloppement Ruby on Rails \u00e0 Bangalore. Nous sommes sp\u00e9cialis\u00e9s dans le d\u00e9veloppement offshore Ruby on Rails, bas\u00e9s aux \u00c9tats-Unis et en Inde. Embauchez des d\u00e9veloppeurs Ruby on Rails exp\u00e9riment\u00e9s pour une exp\u00e9rience Web ultime.","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":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@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":"administrateur","image":{"@type":"ImageObject","inLanguage":"fr-FR","@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\/fr\/wp-json\/wp\/v2\/posts\/6502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/comments?post=6502"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/posts\/6502\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media\/32067"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/media?parent=6502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/categories?post=6502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/fr\/wp-json\/wp\/v2\/tags?post=6502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}