Changeset 216


Ignore:
Timestamp:
03/11/08 14:53:31 (16 years ago)
Author:
niltonneto
Message:

Correções do módulo instant_messenger.
Ver WiKi? em: http://www.expressolivre.org/dev/wiki/messenger

Location:
trunk/instant_messenger
Files:
123 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/instant_messenger/inc/Jabber.abstract.php

    r164 r216  
    4646                        $this->_socket = $socket; 
    4747 
    48                         $return = fread($socket, 4096); 
    49                         fwrite($socket, $pUser); 
    50  
    51                         $return = fread($socket, 4096); 
    52                         fwrite($socket, $pPassword); 
    53  
    54                         $return = fread($socket, 4096); 
    55                         fwrite($socket, $pConnectionType); 
    56  
    57                         $return = fread($socket, 4096); 
     48                        fwrite($socket, "{$USER}@{$SERVER}##{$pPassword}##{$pConnectionType}"); 
     49 
     50                        #sleep(1); 
     51 
     52                        $return = fread($socket, 3); 
     53                        #var_dump($return); 
     54                        #$return = "new"; 
    5855 
    5956                        if ( $return == "new" ) 
     
    6158                                $xml  = "<?xml version='1.0' encoding='UTF-8'?>"; 
    6259                                $xml .= "<stream:stream to='" . $SERVER . "' xmlns='jabber:client' "; 
    63                                 $xml .= "xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>"; 
     60                                $xml .= "xmlns:stream='http://etherx.jabber.org/streams'>";// version='1.0'>"; 
    6461 
    6562                                if ( $this->write($xml) === false ) 
     
    125122                        $xml = "</stream:stream>"; 
    126123 
    127                         if ( $this->write($xml) === false ) 
    128                                 throw new Exception('[disconnect] #1 Cannot write to socket (' . $this->_socket . '). File: ' . __FILE__ . '  ::  ' . __LINE__); 
    129  
    130                         if ( ($xml = $this->read()) === false ) 
    131                                 throw new Exception('[disconnect] #2 it isn\'t possible read the socket. File: ' . __FILE__ . '  ::  ' . __LINE__); 
     124                        #if ( $this->write($xml) === false ) 
     125                        #       throw new Exception('[disconnect] #1 Cannot write to socket (' . $this->_socket . '). File: ' . __FILE__ . '  ::  ' . __LINE__); 
     126 
     127                        #if ( ($xml = $this->read()) === false ) 
     128                        #       throw new Exception('[disconnect] #2 it isn\'t possible read the socket. File: ' . __FILE__ . '  ::  ' . __LINE__); 
    132129                } 
    133130                catch(Exception $e) 
  • trunk/instant_messenger/inc/Jabberd2.abstract.php

    r164 r216  
    7676        final function getContacts() 
    7777        { 
     78                if ( !$this->isConnected() ) 
     79                        return "disconnected"; 
     80 
    7881                $this->iq('get', 'contacts', NULL, NULL, 'jabber:iq:roster'); 
    7982        } 
     
    109112        { 
    110113                $delid  = 'deluser_' . time(); 
    111                 if ( !$this->connected ) 
    112                         echo "disconnected"; 
    113                 else 
    114                 { 
    115                         if ( $this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>")) ) 
    116                                 if ( $this->subscription($pContact['jid'],"unsubscribed") ) 
    117                                         echo "OK"; 
    118                 } 
     114                if ( !$this->isConnected() ) 
     115                        return "disconnected"; 
     116                         
     117                if ( $this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>")) ) 
     118                        if ( $this->subscription($pContact['jid'],"unsubscribed") ) 
     119                                echo "OK"; 
    119120        } 
    120121 
     
    135136        final function setPresence($pPresence = false) 
    136137        { 
     138                if ( !$this->isConnected() ) 
     139                        return "disconnected"; 
     140 
    137141                if ( !$pPresence ) 
    138142                        $this->presence(); 
  • trunk/instant_messenger/inc/class.Ujabber.inc.php

    r164 r216  
    2626        { 
    2727                $this->closeSocket(); 
     28                ob_end_flush(); 
     29                flush(); 
     30        } 
     31         
     32        public final function isConnected() 
     33        { 
     34                return $this->connected; 
    2835        } 
    2936         
    3037        public final function listen() 
    3138        { 
    32                 if ( !$this->connected ) 
     39                if ( !$this->isConnected() ) 
    3340                        return "disconnected"; 
    3441 
     
    4754                        $init = time(); 
    4855 
    49                         while ( !connection_aborted() && time() - $init < 30 ) 
     56                        while ( !connection_aborted() && time() - $init < 50 ) 
    5057                        { 
    5158                                # read from server and write in the client 
    5259                                $xml = $this->readSocket(); 
     60                                //var_dump($xml); 
    5361                                $xml = ( strlen($xml) ) ? $xml : ' '; 
    5462                                printf("%s", $xml); 
     
    5765                                usleep(6000); 
    5866                        } 
    59                         ob_end_flush(); 
    6067                } 
    6168        } 
     
    6370        public final function SendMessage($pSendMessage) 
    6471        { 
     72                if ( !$this->isConnected() ) 
     73                        return "disconnected"; 
     74 
    6575                $pSendMessage['body'] = stripslashes($pSendMessage['body']); 
    6676 
  • trunk/instant_messenger/inc/im_acl.inc.php

    r164 r216  
    22$size_of_ACL = sizeof($GLOBALS['phpgw_info']['user']['acl']); 
    33 
    4 for ( $i = 0; $i < $size_of_ACL && $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger'; $i++ ); 
     4for ( $i = 0; $i < $size_of_ACL; $i++ ) 
     5        if ( $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger' ) 
     6        { 
     7                $webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url']; 
     8                $webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/'; 
    59 
    6 $webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url']; 
    7 $webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/'; 
     10                if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) ) 
     11                        $webserver_url .= '/'; 
    812 
    9 if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) ) 
    10         $webserver_url .= '/'; 
     13                $webserver_url = $webserver_url . 'instant_messenger/'; 
    1114 
    12 $webserver_url = $webserver_url . 'instant_messenger/'; 
     15                session_start(); 
     16                require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php'; 
     17                require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php'; 
     18                $_user     = $_SESSION['phpgw_info']['instant_messenger']['user']; 
     19                $_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd']; 
     20                $_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber']; 
     21                $_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber']; 
     22                $_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber']; 
     23                session_write_close(); 
    1324 
    14 session_start(); 
    15 require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php'; 
    16 require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php'; 
    17 $_user     = $_SESSION['phpgw_info']['instant_messenger']['user']; 
    18 $_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd']; 
    19 $_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber']; 
    20 $_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber']; 
    21 $_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber']; 
    22 session_write_close(); 
     25                $DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/'; 
    2326 
    24 require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/class.Ujabber.inc.php'; 
     27                $js = array( 
     28                        'js/connector.js', 
     29                        'js/xtools.js', 
     30                        'js/jabber.js', 
     31                        'js/client.js', 
     32                        'js/images.js', 
     33                        'js/dragdrop.js', 
     34                        'js/build_win.js', 
     35                        'js/templates.js', 
     36                        'js/fcommon.js', 
     37                        'js/menu_action.js', 
     38                        'js/functions.js', 
     39                        'js/images.js', 
     40                        'js/cookies_im.js', 
     41                        'js/load.js', 
     42                ); 
    2543 
    26 $DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/'; 
     44                print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>'; 
    2745 
    28 $js = array( 
    29         'js/connector.js', 
    30         'js/xtools.js', 
    31         'js/jabber.js', 
    32         'js/client.js', 
    33         'js/images.js', 
    34         'js/dragdrop.js', 
    35         'js/build_win.js', 
    36         'js/templates.js', 
    37         'js/fcommon.js', 
    38         'js/menu_action.js', 
    39         'js/functions.js', 
    40         'js/images.js', 
    41         'js/cookies_im.js', 
    42         'js/load.js', 
    43 ); 
     46                foreach ( $js as $key => $val ) 
     47                        print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>'; 
    4448 
    45 print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>'; 
     49                print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">'; 
     50                print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">'; 
     51                print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">'; 
    4652 
    47 foreach ( $js as $key => $val ) 
    48         print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>'; 
     53                require_once  $DOCUMENT_ROOT . 'inc/class.Ujabber.inc.php'; 
    4954 
    50 print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">'; 
    51 print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">'; 
    52 print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">'; 
     55                $jabber = new Ujabber; 
     56                $jabber->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass, 'read/write'); 
    5357 
    54 $jabber = new Ujabber; 
    55 $jabber->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass, 'read/write'); 
    56 print '<script type="text/javascript">setTimeout("client()",2000);</script>'; 
     58                print '<script type="text/javascript">setTimeout("client()",2000);</script>'; 
     59                $i = $size_of_ACL; 
     60        } 
    5761?> 
Note: See TracChangeset for help on using the changeset viewer.