Dear team, I need a urgent requirement of creating a simple jabber client in php, i am using ejabberd jabber server running. I using the class_jabber.php and related files. Though i am new to this programming (socket) - could you please help me out in this regard. Herewith, I am sending you the code which iam using right now for your kind notice. ---------------------------------------------------------- <?php // include the Jabber class require_once("class_Jabber.php"); require_once('../settings/connect.php'); require_once('class_queryHandler.php'); require_once('class_ConnectionSocket.php'); require_once('classJabberMn.php'); $jABBER_LoginData = jabber_login_username($PHP_AUTH_USER); //This function is used to get name/position of the person who sends messages $jABBER_LoginData1 = jabber_login_username_byId($sendPeId); //message from person $msgFrom = "test_".$jABBER_LoginData1[0]."@jabberServerName.net"; //Receiving person id define("JABBER_USERNAME_FROM",$jABBER_LoginData1[0]); define("JABBER_POSITION_FROM",$jABBER_LoginData1[1]); $toPeId = $_GET['toPeId']; $sendPeId = $_GET['sendPeId']; $sendToId = $_POST['toPeId']; //$sendById = $_POST['sendById']; //Set your Jabber server hostname, username, and password here define("JABBER_SERVER","jabberServerName.net"); define("JABBER_USERNAME",$jABBER_LoginData[0]); define("JABBER_PASSWORD","scg"); define("JABBER_USER_ID",$jABBER_LoginData[2]); $jabberUserData = $jABBER_LoginData[0].' online in the jabberServerName Account'; //if($sendToId != '' || $sendById != '') { //send message info $jABBER_LoginData2 = jabber_login_username_sendToMsg($sendPeId); $jABBER_Data_prsn = jabber_login_username_sendToMsg($sendById); $jids = $jABBER_Data_prsn[0]; $messageToBeSent = $_POST['message']; $messageSendBy = $jABBER_LoginData2[0]; //message sent by person/position $messageSendBy_person = $jABBER_LoginData[3]; $messageSendBy_position = $jABBER_LoginData[4]; define("MESSAGESENDBY_PERSON",$messageSendBy_person); define("MESSAGESENDBY_POSITION",$messageSendBy_position);
//} define("RUN_TIME",300); // set a maximum run time of 5 Minutes define("CBK_FREQ",5); // fire a callback event every 5 seconds ?> <html> <head> <title>jabberServerName chat module</title> <script language="JavaScript" type="text/javascript" src="/forms/lib_form/prototype.js"></script> <script language="JavaScript" type="text/javascript" src="/forms/lib_form/effects.js"></script> <LINK rel="stylesheet" type="text/css" href="/forms/css/styles_ie.css"> </head> <? class OurMessenger { function OurMessenger() { echo "Created!\n"; // create an instance of the Jabber class $this->jab = new Jabber(true); // set handlers for the events we wish to be notified about $this->jab->set_handler("connected",$this,"handleConnected"); $this->jab->set_handler("authenticated",$this,"handleAuthenticated"); $this->jab->set_handler("authfailure",$this,"handleAuthFailure"); //$this->jab->set_handler("servicesdiscovered",$this,"handleServicesDisc overed"); //$this->jab->set_handler("servicesupdated",$this,"handleServiceInfo"); //$this->jab->set_handler("browseresult",$this,"handleBrowseResult"); $this->jab->set_handler("heartbeat",$this,"handleHeartbeat"); $this->jab->set_handler("error",$this,"handleError"); $this->jab->set_handler("message_normal",$this,"handleMessage"); $this->jab->set_handler("message_chat",$this,"handleMessage"); $this->jab->set_handler("debug_log",$this,"handleDebug"); } function executingMessenger(){ // connect to the Jabber server if (!$this->jab->connect(JABBER_SERVER)) { die("Could not connect to the Jabber server!\n"); } // now, tell the Jabber class to begin its execution loop $this->jab->execute(CBK_FREQ,RUN_TIME); // Note that we will not reach this point (and the execute() method will not // return) until $this->jab->terminated is set to TRUE. The execute() method simply // loops, processing data from (and to) the Jabber server, and firing events // (which are handled by our TestMessenger class) until we tell it to terminate. // // This event-based model will be familiar to programmers who have worked on // desktop applications, particularly in Win32 environments. // disconnect from the Jabber server $this->jab->disconnect(); } // called when a connection to the Jabber server is established function handleConnected() { //echo "Connected!\n"; // now that we're connected, tell the Jabber class to login $this->jab->login(JABBER_USERNAME,JABBER_PASSWORD); } // called after a login to indicate the the login was successful function handleAuthenticated() { //echo "Authenticated!\n"; // set this user's presence global $messageToBeSent, $jids; $today = date("Y-m-d H:i:s"); if($messageToBeSent != '') { echo $messageToDisplay = " <div id='message_comments_20671_20670'> <table border='0' cellspacing='0' cellpadding='0' width='100%'> <tr> <td class='data' width='100%'> <table width='100%' cellspacing='0' cellpadding='0'> <tr bgcolor='#e6e6e6'> <td class='data' width='50%'> <strong>".ucfirst(MESSAGESENDBY_PERSON)."</strong> | <strong>".MESSAGESENDBY_POSITION."</strong> </td> <td class='data' width='50%' align='right'> ".$today." </td> </tr> <tr> <td class='data' colspan='2'> ".$messageToBeSent." </td> </tr> </table> </td> </tr> </table> </div> "; $this->jab->message($jids, 'chat', NULL, $messageToBeSent); //$this->jab->terminated = true; $messageToDisplay=''; } //sleep(1); $this->jab->set_presence("", 'so what'); } // called after a login to indicate that the login was NOT successful function handleAuthFailure($code,$error) { echo "Authentication failure: $error ($code)\n"; // set terminated to TRUE in the Jabber class to tell it to exit $this->jab->terminated = true; } // called periodically by the Jabber class to allow us to do our own // processing function handleHeartbeat() { //hardcoded !!! if (onlineOfflineStatus(JABBER_USER_ID) <> 1) { //echo "offline<BR>"; } else { //echo "online<BR>"; } $statusCheck = $this->jab->connectStatus(); print_r($statusCheck); //I am commenting this part of the code for test purpose /* $statusCheckExplore = explode('~',$statusCheck); if($statusCheckExplore[0] == 'eof' && $statusCheckExplore[1] == 'TRUE') { //$this->_connection = &new $connector(); //$this->_connection->socket_close(); //sleep(1); $this->jab->terminated = true; $this->OurMessenger(); $this->executingMessenger(); } */ ob_flush(); flush(); } // called when a message is received from a remote contact function handleMessage($from,$to,$body,$subject,$thread,$id,$extended) { global $msgFrom; $today = date("Y-m-d H:i:s"); //echo 'from-->'.$from.$msgFrom; $fromMsg = explode('/', $from); $toMsg = explode('/', $to); if($fromMsg[0] == $msgFrom) { echo $messageToShow = " <div id='message_comments_20671_20670'> <table border='0' cellspacing='0' cellpadding='0' width='100%'> <tr> <td class='data' width='100%'> <table width='100%' cellspacing='0' cellpadding='0'> <tr bgcolor='#D7EBFF'> <td class='data' width='50%'> <strong>".ucfirst(JABBER_USERNAME_FROM)."</strong> | <strong>".JABBER_POSITION_FROM."</strong> </td> <td class='data' width='50%' align='right'> ".$today." </td> </tr> <tr> <td class='data' colspan='2'> ".$body." </td> </tr> </table> </td> </tr> </table> </div> "; $this->last_msg_id = $id; $this->toMsgPrsn = $toMsg[0]; $this->last_msg_from = $from; } } // called when an error is received from the Jabber server function handleError($code,$error,$xmlns,$packet) { echo "Error: $error ($code)".($xmlns?" in $xmlns":"noxmlns")." from $from $node id ".$packet['iq']['@']['id']."\n"; } function handleDebug($msg,$level) { "DBG: $msg\n"; } } ?> </body> </html> ---------------------------- please point me out where i am doing wrong here. I need this asap. Please help me in this regards, by adjusting the existing code or please provide me a sample code for doing this. Thanks and Regards, Sriman.