Lato server
codice:

<?php
header("Content-Type: text/event-stream\n\n");
require '../settings.php';
include ('../../include/conn_db_mysqli.php'); 


session_start();
secure_session();
	
$g_session_id = $_SESSION['session_id'];


while (true)
{  
   $current_msg=getLastCheckedMsg($conn2,$g_session_id);
    sleep(1);
    echo "data: messaggi ".$current_msg." \n\n";
    // This will ensure our data is sent provided you set this
    // in your php.ini:
    // output_buffering = off
    ob_flush();
    flush();
}


function getLastCheckedMsg($conn2,$g_session_id){
	$table='tblutenti';
	$fields="messaggi";
	$condition=array("id" => $g_session_id);
		
	$message=db_read_tbl_opAND($table, $fields, $condition);
	return $message;	
}
lato client
codice:
document.addEventListener("DOMContentLoaded", function() {
  var  eventSrc  = new EventSource( "core/dynamic_call/something_is_incoming_SSE.php" ), 
  	   handler = function( event ) {
       	    console.log( [ event.type, new Date(), event, event.data ] );
  },
  getReadyState = function( src ) {
    if ( src.readyState ) {
      // readyState is almost always 0, we're only interested in 
      // seeing readyState OPEN (1) ( or CLOSED (2) )
      console.log( [ src.readyState, new Date() ] );
    }
    setTimeout(function() {
      getReadyState( src );
    }, 20000);
  };
  console.log( eventSrc );
  // Setup event handlers
  [ "open", "message" ].forEach( function( name ) {
  	  eventSrc.addEventListener( name, handler, false );
  });
  // Begin sampling the ready state
  getReadyState( eventSrc );
}, false);
FUNZIONA ALLA GRANDE!
adesso lo rendo compatibile con gli altri browser
grazie infinite