· 8 years ago · Jul 23, 2018, 08:38 PM
1// Begin XMPP
2$conn = new XMPPHP_XMPP('talk.google.com', 5222, $G_Email, $G_Pass, 'xmpphp', 'gmail.com', $printlog=true, $loglevel=XMPPHP_Log::LEVEL_VERBOSE);
3$conn->autoSubscribe();
4
5$vcard_request = array();
6
7//var_dump($conn);
8
9try {
10
11 $conn->connect();
12
13 while(!$conn->isDisconnected())
14 {
15
16 $payloads = $conn->processUntil(array('message', 'session_start'));
17
18 foreach($payloads as $event)
19 {
20
21 $pl = $event[1];
22
23 switch($event[0])
24 {
25
26 case 'message':
27
28 $Full_JID = $conn->fulljid;
29 $Bare_JID = $conn->jid;
30
31 echo "<hr />";
32
33 //echo "Message from: " . $pl['from'] . "<br />";
34
35 if($pl['from'] == 'cloudprint.google.com')
36 {
37 // We have received a push for this Print Proxy ID + User.
38
39 // Now we can /fetch print jobs for this Proxy, User, Printer ID
40
41 echo "Print Job Notification Received for " . $Printer_Proxy . " / " . $Bare_JID . "<br />";
42 }
43
44 break;
45
46 case 'session_start':
47
48 $Full_JID = $conn->fulljid;
49 $Bare_JID = $conn->jid;
50
51 echo "FULL JID: " . $conn->fulljid . "<br />";
52 echo "JID: " . $conn->jid . "<br />";
53
54 echo "<hr />";
55
56 $Body = "<iq from='" . $Full_JID . "' to='" . $Bare_JID . "' type='set' id='1'><subscribe xmlns='google:push'><item channel='cloudprint.google.com/proxy/" . $Printer_Proxy . "' from='cloudprint.google.com'/></subscribe></iq>";
57
58 $conn->subscription($Body);
59
60 break;
61
62
63 }
64 }
65 }
66} catch(XMPPHP_Exception $e) {
67 die($e->getMessage());
68}