Visualizzazione dei risultati da 1 a 1 su 1

Hybrid View

ANTAGONIA Funzione chatHeartbeat non... 08-07-2014, 11:01
  1. #1

    Funzione chatHeartbeat non viene richiamata

    Buon giorno a tutti.
    Ho scaricato e installato una chat in php, ho qualche problemino, ma partiamo dal primo.
    Non capisco come richiamare la funzione chatHeartbeat

    //pagina lista-utenti-online.php
    Codice PHP:
    //richiamo i file js
    <script type="text/javascript" src="jquerychat/js/jquery.js"></script>
    <script type="text/javascript" async="true" src="jquerychat/js/chat.js"></script>

    //eseguo una query per tirare fuori gli utenti online e genero tanti link con il nominativo per richiamare la funzione chatWith() come qui sotto.

    echo "<a href='javascript:void(0)' onclick=\"javascript:chatWith('".$row['cal_firstname']. "','".$_SESSION['webcal_firstname']."')\">".$row['cal_firstname']."</a>"; 
    Il link con la funzione chatWith() va a richiamare la medesima funzione in chat.js
    Poi c'è un file chat.js dove all'interno c'è questa funzione:
    codice:
    function chatHeartbeat(){
        alert("chatHeartbeat");
        var itemsfound = 0;
        
        if (windowFocus == false) {
     
            var blinkNumber = 0;
            var titleChanged = 0;
            for (x in newMessagesWin) {
                if (newMessagesWin[x] == true) {
                    ++blinkNumber;
                    if (blinkNumber >= blinkOrder) {
                        document.title = x+' says...';
                        titleChanged = 1;
                        break;    
                    }
                }
            }
            
            if (titleChanged == 0) {
                document.title = originalTitle;
                blinkOrder = 0;
            } else {
                ++blinkOrder;
            }
    
    
        } else {
            for (x in newMessagesWin) {
                newMessagesWin[x] = false;
            }
        }
    
    
        for (x in newMessages) {
            if (newMessages[x] == true) {
                if (chatboxFocus[x] == false) {
                    //FIXME: add toggle all or none policy, otherwise it looks funny
                    $('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');
                }
            }
        }
        
        $.ajax({
          url: "jquerychat/chat.php?action=chatheartbeat",
          cache: false,
          dataType: "json",
          success: function(data) {
    
    
            $.each(data.items, function(i,item){
                if (item)    { // fix strange ie bug
    
    
                    chatboxtitle = item.f;
    
    
                    if ($("#chatbox_"+chatboxtitle).length <= 0) {
                        createChatBox(chatboxtitle);
                    }
                    if ($("#chatbox_"+chatboxtitle).css('display') == 'none') {
                        $("#chatbox_"+chatboxtitle).css('display','block');
                        restructureChatBoxes();
                    }
                    
                    if (item.s == 1) {
                        item.f = username;
                        //alert("user: " + username);
                    }
    
    
                    if (item.s == 2) {
                        //alert("M: " + item.m);
                        $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxinfo">'+item.m+'</span></div>');
                    } else {
                        //alert("F: " +item.f);
                        newMessages[chatboxtitle] = true;
                        newMessagesWin[chatboxtitle] = true;
                        $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+item.m+'</span></div>');
                    }
    
    
                    $("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);
                    itemsfound += 1;
                }
            });
    
    
            chatHeartbeatCount++;
    
    
            if (itemsfound > 0) {
                chatHeartbeatTime = minChatHeartbeat;
                chatHeartbeatCount = 1;
            } else if (chatHeartbeatCount >= 10) {
                chatHeartbeatTime *= 2;
                chatHeartbeatCount = 1;
                if (chatHeartbeatTime > maxChatHeartbeat) {
                    chatHeartbeatTime = maxChatHeartbeat;
                }
            }
            
            setTimeout('chatHeartbeat();',chatHeartbeatTime);
        }});
    }
    La stessa funzione richiama la pagina chat.php per eseguire una select, che PRESUMO va a ripescare la conversazione tra i due utenti che si stanno parlando oppure che si sono parlati.

    //Questo è il file chat.php, qui ci sono una serie di operazioni per dialogare con il DB
    Codice PHP:
    <?php
    define 
    ('DBPATH','localhost');
    define ('DBUSER','root');
    define ('DBPASS','');
    define ('DBNAME','Sql563051_1');
    session_start();
    global 
    $dbh;
    $dbh mysql_connect(DBPATH,DBUSER,DBPASS) or die ("Not connect"mysql_error());
    mysql_select_db(DBNAME,$dbh);

    if (
    $_GET['action'] == "chatheartbeat") { chatHeartbeat(); } //<-- attraverso questo evento dovrebbe richiamarmi la funzione chatHeartbeat()if ($_GET['action'] == "sendchat") { 
    sendChat(); } if ($_GET['action'] == "closechat") { closeChat(); } 
    if (
    $_GET['action'] == "startchatsession") { startChatSession(); } 

    if (!isset(
    $_SESSION['chatHistory'])) {    
    $_SESSION['chatHistory'] = array();    
    }
    if (!isset(
    $_SESSION['openChatBoxes'])) {    
    $_SESSION['openChatBoxes'] = array();    
    }
    function 
    chatHeartbeat() {        
    $sql "select * from chat where (chat.id_user=".$_SESSION['id_user']." AND chat.to = '".mysql_real_escape_string($_SESSION['username'])."' AND recd = 0) order by id ASC";   
    $query mysql_query($sql);    
    $items '';
        
    $chatBoxes = array();
        
    while (
    $chat mysql_fetch_array($query)) {
            if (!isset(
    $_SESSION['openChatBoxes'][$chat['from']]) && isset($_SESSION['chatHistory'][$chat['from']])) {            
    $items $_SESSION['chatHistory'][$chat['from']];        
    }
            
    $chat['message'] = sanitize($chat['message']);
            
    $items .= <<<EOD                       
    {            
    "s""0",            
    "f""{$chat['from']}",            
    "m""{$chat['message']}"       
    }
    ,
    EOD;
       
     if (!isset(
    $_SESSION['chatHistory'][$chat['from']])) {        
    $_SESSION['chatHistory'][$chat['from']] = '';    
    }
        
    $_SESSION['chatHistory'][$chat['from']] .= <<<EOD                          
     
    {            
    "s""0",            
    "f""{$chat['from']}",            
    "m""{$chat['message']}"       
    }
    ,
    EOD;                

    unset(
    $_SESSION['tsChatBoxes'][$chat['from']]);        
    $_SESSION['openChatBoxes'][$chat['from']] = $chat['sent'];    
    }
        
    if (!empty(
    $_SESSION['openChatBoxes'])) {    
    foreach (
    $_SESSION['openChatBoxes'] as $chatbox => $time) {        
    if (!isset(
    $_SESSION['tsChatBoxes'][$chatbox])) {            
    $now time()-strtotime($time);            
    $time date('g:iA M dS'strtotime($time));
                
    $message "Sent at $time";           

    if (
    $now 180) {                
    $items .= <<<EOD{
    "s""2",
    "f""$chatbox",
    "m""{$message}"}

    ,
    EOD;
        
    if (!isset(
    $_SESSION['chatHistory'][$chatbox])) {        
    $_SESSION['chatHistory'][$chatbox] = '';    
    }
        
    $_SESSION['chatHistory'][$chatbox] .= <<<EOD        
    {
    "s""2",
    "f""$chatbox",
    "m""{$message}"
    }
    ,
    EOD;            
    $_SESSION['tsChatBoxes'][$chatbox] = 1;        
    }        
    }    
    }
    }
        
    $sql "update chat set recd = 1 where chat.id_user=".$_SESSION['id_user']." AND chat.to = '".mysql_real_escape_string($_SESSION['username'])."' and recd = 0";    
    $query mysql_query($sql);
        
    if (
    $items != '') {        
    $items substr($items0, -1);    
    }
    header('Content-type: application/json');?>
    {        
    "items": [            <?php echo $items;?>        ]
    }
    <?php            
    exit(0);
    }
    function 
    chatBoxSession($chatbox) {        
    $items '';        
    if (isset(
    $_SESSION['chatHistory'][$chatbox])) {        
    $items $_SESSION['chatHistory'][$chatbox];    
    }
        
    return 
    $items;
    }
    function 
    startChatSession() {    
    $items '';    
    if (!empty(
    $_SESSION['openChatBoxes'])) {        
    foreach (
    $_SESSION['openChatBoxes'] as $chatbox => $void) {            
    $items .= chatBoxSession($chatbox);        
    }    
    }

     if (
    $items != '') {        
    $items substr($items0, -1);    
    }
    header('Content-type: application/json');?>
    {        
    "username": "<?php echo $_SESSION['username'];?>",        "items": [            <?php echo $items;?>        ]}
    <?php    exit(0);}
    function 
    sendChat() {    //$from = $_SESSION['username'];    $from = $_SESSION['webcal_firstname'];    $to = $_POST['to'];    $message = $_POST['message'];
        
    $_SESSION['openChatBoxes'][$_POST['to']] = date('Y-m-d H:i:s'time());        $messagesan sanitize($message);
        if (!isset(
    $_SESSION['chatHistory'][$_POST['to']])) {        $_SESSION['chatHistory'][$_POST['to']] = '';    }
        
    $_SESSION['chatHistory'][$_POST['to']] .= <<<EOD                       {            "s""1",            "f""{$to}",            "m""{$messagesan}"       },EOD;

        unset(
    $_SESSION['tsChatBoxes'][$_POST['to']]);
        
    $sql "insert into chat (chat.id_user,chat.from,chat.to,message,sent) values (".$_SESSION['id_user'].",'".mysql_real_escape_string($from)."', '".mysql_real_escape_string($to)."','".mysql_real_escape_string($message)."',NOW())";            $query mysql_query($sql);    echo "1";    exit(0);}
    function 
    closeChat() {
        unset(
    $_SESSION['openChatBoxes'][$_POST['chatbox']]);        echo "1";    exit(0);}
    function 
    sanitize($text) {    $text htmlspecialchars($textENT_QUOTES);    $text str_replace("\n\r","\n",$text);    $text str_replace("\r\n","\n",$text);    $text str_replace("\n","<br>",$text);    return $text;}?>
    Domanda: come faccio a richiamare la funzione chatHeartbeat ?
    Grazie mille.
    Ultima modifica di ANTAGONIA; 08-07-2014 a 11:07

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.