[php/python] Cross language communication

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Stevanov
  • Registratie: Maart 2010
  • Laatst online: 07-09 10:54
-

[ Voor 100% gewijzigd door Stevanov op 16-02-2015 13:27 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Tja er zijn tal van manieren om te communiceren, het is maar net wat je met die communicatie wil bereiken.

Ten eerste zal je vooral moeten zorgen dat je communicatie protocol juist taal-onafhankelijk is. Conversies tussen talen moet je pas doen bij het presenteren van je data. Of bedoel je verschillende programmeer talen? Op zicht heeft dat namelijk weinig met je communicatie te maken zolang je een protocol/transport kiest dat door beide talen ondersteund wordt.

Sockets zijn inderdaad een optie, maar je zou ook gewoon een message based protocol kunnen gebruiken via HTTP (daar kun je cURL voor gebruiken). Je stuurt dan gewoon berichtjes heen en weer ( JSON of XML bijvoorbeeld ).

[ Voor 15% gewijzigd door Woy op 22-10-2012 20:23 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Stevanov
  • Registratie: Maart 2010
  • Laatst online: 07-09 10:54
-

[ Voor 99% gewijzigd door Stevanov op 16-02-2015 13:27 ]


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

Gebruik de ingebouwde http.server module, een eenvoudige server waarmee je het absoluut minimum wel mee kan doen.

[ Voor 26% gewijzigd door afraca op 22-10-2012 21:09 ]

IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Stevanov schreef op maandag 22 oktober 2012 @ 19:54:
Omdat het een shared host is kan ik helaas geen extra libraries installeren op de website dus het moet met de basic stuff.
Als het om python-libraries gaat: http://pypi.python.org/pypi/virtualenv . Veel php-libraries (mits php-based) kan je installeren door gewoon de php-files te kopiëren. Ik weet niet of je in PHP ook dynamisch binaries kunt laden vanuit je eigen mappen (zie de PECL docs) - dan zou je gewoon http://www.csh.rit.edu/~jon/projects/pip/ kunnen gebruiken.

Verder kan je er voor kiezen om ipv een php-frontend een python-frontend te gebruiken (als je host cgi-bin ondersteunt; als ze wsgi ondersteunen dan is dat natuurlijk helemaal mooi). Dan roept de webserver direct python-code aan.

Als je puur vanuit PHP je script wilt aanroepen dan kan dat ook nog gewoon via de shell (shell_exec et al.), maar kijk dan wel uit voor injections.

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 13-09 13:25

Patriot

Fulltime #whatpulsert

PHP en Python draaien in zijn situatie op twee verschillende apparaten ValHallASW, jouw verhaal is hier dus niet van toepassing.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Simpelste methode is gewoon op je website een json/xml oid bericht op te bouwen en deze dan periodiek (1x per 5 minuten oid) vanuit je thuisserver uit te lezen.

In mijn ervaring is bijna nooit directe/instantane communicatie nodig indien wel dan wordt het gelijk een zooi complexer (thuisinet heeft nogal eens de neiging om uit te vallen etc)

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 13-09 13:25

Patriot

Fulltime #whatpulsert

Als de opdrachten een beetje betrouwbaar door moeten komen is dat onnodig complexer dan gewoon een http servertje draaien in python. Anders heb je er totaal geen zicht op welke opdrachten zijn uitgevoerd, of überhaupt doorgekomen.

Acties:
  • 0 Henk 'm!

  • Morax
  • Registratie: Mei 2002
  • Laatst online: 12-09 17:02
Is het eventueel een idee om twee keer PHP te gebruiken?

Je kan natuurlijk ook een PHP webserver installeren op je bak thuis, en die gebruiken om web requests te ontvangen. Met een script op je thuisserver kan je vanuit PHP dan een commando op de command line uitvoeren om je pyhton script te starten :)

What do you mean I have no life? I am a gamer, I got millions!


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Woy heeft het antwoord al gegeven. Als het zulke simpele commando's zijn kun je het beste op je micro een python-gebaseerd webservertje zetten die aan de hand van URLs die verschillende commando's uitvoert en dan gewoon in de body een XML of JSON response geeft. Heeft ook nog eens als voordeel dat het ook gewoon via proxies e.d. gaat werken.

Denk alleen wel even na of je beveiliging nodig hebt; wat gebeurt er als iemand anders achter die commado's komt, gaat dan de temperatuur in je huis naar 30 graden?

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Stevanov
  • Registratie: Maart 2010
  • Laatst online: 07-09 10:54
-

[ Voor 100% gewijzigd door Stevanov op 16-02-2015 13:27 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Stevanov schreef op dinsdag 23 oktober 2012 @ 12:12:
Het klopt natuurlijk wel dat het niet super veilig is omdat iemand achter de commando's kan komen zoals Hydra zegt. Ik moest wel ff lachen om je opmerking over de temperatuur die omhoog gaat. Het zal inderdaad wel zoiets zijn, maar dan veel simpeler (een lamp ofzo) er is dus nog niet echt behoefte aan beveiliging. Het is voornamelijk een leerprojectje.
Je kan het natuurlijk vrij eenvoudig beveiligen d.m.v. basic security, eventueel i.c.m. een HTTPS verbinding.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1