[php] msn bot loop probleem

Pagina: 1
Acties:
  • 545 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 20-09 15:53

Tjeerd

Be Original, Be Yourself.

Topicstarter
Er zijn al een zootje PHP MSN-botjes in de omloop, waaronder Blobsy, FlumpCakes PHP MSN Messenger en op deze site staan ook een hoop projecten/talen waarin PHP MSN clients zjin ontwikkeld.

Allemaal erg mooi. Blobsy heb ik mee gespeeld, die draait maar gaat na een paar minuten offline. Erg uitgebreid, alleen kom ik er zo 123 niet uit hoe ik vanuit de bot zelf een bericht kan sturen naar een contact toe. Heb daar al een vraag gesteld op het forum van Blobsy, dus daar hoop ik nog reactie op te krijgen.

Ik heb het PHP MSN script van FlumpCakes gebruikt en die blijft gewoon altijd online en reageert perfect op commando's. Maar, ik wil ook dat het script uit zichzelf een bericht kan sturen naar een contact/persoon toe uit de contactlijst. Wat het script standaard doet is luisteren op de socket dmv een while !feof()- lus. Hartstikke leuk, zodra een gebruiker een RNG doet, komt dat binnen op de socket en neemt de bot op. Dan kun je fijn de binnenkomende data gaan ontcijferen en adh daarvan weer een reactie terug geven.

Dan mijn vraag: die lus wacht op binnenkomend verkeer, maar, als er niets binnenkomt wordt er ook verder niets uitgevoerd binnen die lus. Ik wil namelijk ook op één of andere manier binnen die lus zelf om de bijv. 30 seconden iets uit laten voeren, bijvoorbeeld een bericht sturen naar de gebruiker toe. Dus zelf inititatief nemen om een gesprek te starten. Iemand enig idee hoe ik dit het beste kan oplossen?

[ Voor 6% gewijzigd door Tjeerd op 27-05-2006 14:54 ]

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

het MSN protocol stuurt om de tijd een PNG om te checken of je nog online bent... vang die af en gebruik dat om een update te doen OF herschrijf die loop naar iets van
{
...
$doorgaan = !feof();
jouw_loop();
}
while($doorgaan)

ofzo (vast foute syntax, maar het idee is duidelijk)

-niks-


Acties:
  • 0 Henk 'm!

  • Tjeerd
  • Registratie: Oktober 1999
  • Laatst online: 20-09 15:53

Tjeerd

Be Original, Be Yourself.

Topicstarter
Ok, ik heb nu adhv flumpCake's PHP MSN code een stukje gevonden in de loop welke checkt op een CHL (challenge-verzoek). Wanneer dat commando van de server komt dan moet het QRY-commando terug worden gegeven. Een soort van poll-systeem dus, werkt prima.

In dat stukje code wilde ik zelf een switchboard opzetten:

code:
1
2
3
4
case 'CHL': doe(QRY, bla bla);
                 $switchboard = new switchboard;
                 $switchboard->tx_im($this->fp, "hallo, dit is een bericht", $this->passport, "iemand@ergens.com";
break;


De broncode is hier te vinden en dan specifiek in het msn9.class.php-bestand binnen de rx_data-functie.

Ik dacht dat ik op deze manier een switchboard kon aanmaken en dan een bericht kan versturen naar een gebruiker. Maar helaas, dit lijkt niet te werken. Is er iemand die hier ervaring heeft met switchboards e.d. binnen het MS-protocol? (of is dit semi-illegale vragen stellen?)

www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.