Jump to content
GSForum - Segélyvonal

Websocket és a nagyvilág


kléni
 Share

Recommended Posts

kléni

Újra nekifutottam a websocket-es projektemnek. Most pythonban a tornado nevű web keretrendszert használtam, így nem kellett a szerver alapjainak megírásával vacakolni. Tökéletesen működik is mindaddig, ameddig a js-ben "ws://localhost:843/" címet adok meg. Ha viszont kicserélem a gépen elérési, IP címére a localhost-ot (89.135.), nem akar sehogy se rákapcsolódni a szerverre. A 843-as port át van engedve a routeren (ugyan úgy, mint a 80-as, amire gond nélkül tudok külső hálózatról kapcsolódni). Az xampp netstat panelján látom a python.exe-t a 0.0.0.0:843-as címen (akár csak a httpd.exe-t).

Van valami ötletetek, hogy tudnám kideríteni, mi a gond, vagy mit csináltam rosszul, hagytam ki?

Link to comment
Share on other sites

KGigi

A router ebben az esetben szerintem nem játszik, az a külső forgalmat irányítja át ezekre a portokra. De miért is nem jó a localhost? Egyébként az a 0.0.0.0 nekem nagyon nem tetszik. Te állítottad arra?

Link to comment
Share on other sites

kléni

Nem csak a saját hálózatomról akarom elérni a szervert, hanem kintről is, amihez kell egy cím, amire csatlakozni tudnak. Ez lenne az IP címem domain hiányában.

A 0.0.0.0 mindenre érvényes, és nem is tudom a gépem IP címére beállítani. Az xampp netstat részén a httpd.exe is ezen a címen fut, arra viszont tudok kívülről kapcsolódni. Tulajdonképpen nem is állítottam be semmit. :D Így néz ki a kis kód:

import tornado.websocket
import tornado.ioloop
import tornado.web
class WSHandler(tornado.websocket.WebSocketHandler):
 def open(self):
 def on_message(self, message):
 def on_close(self):
application = tornado.web.Application([(r'/', WSHandler),])
if __name__ == "__main__":
 application.listen(843)
 tornado.ioloop.IOLoop.instance().start()

Link to comment
Share on other sites

KGigi

Kívülről minden további nélkül mennie kéne, csak belülről nem.

Link to comment
Share on other sites

  • 1 month later...
kléni

Nekiestem megint, most egy php-s változatú szerverrel újra. Magamnak sikerült localhoost:123 és 12.34.56.78:123-ként is kapcsolódni a szerverre gond nélkül a socket_bind($m, "0.0.0.0", 123) után, azonban egy másik személynek már nem. E miatt azt feltételezem, a routerrel, vagy valami hasonló beállítással lehet a probléma. Van esetleg bármiféle tippetek így utólag? :D Nagyon kéne már ez a szerver, nem akarom a klienst javaban, vagy flashban írni.

Link to comment
Share on other sites

payskin

Miért 123-as porttal csinálod? 1024 alatti portokat nem illik ilyesmire használni, azok service portok. Próbáld ki az 12345-tel, és persze engedd át a routeren port forwardinggal.

Link to comment
Share on other sites

[OP]Destroy-man

A végleges server nem véletlenül Windows server? Mert asp.net-be pillanatok alatt megírható, és az IIS-nek köszönhetően garantáltan működik (feltéve, hogy telepítve van a WebSocket az IIS-hez, de ez szinte mindenhol elérhető).

Link to comment
Share on other sites

kléni

Nem sokra jutottam. A portot ugyan átírtam magasabbra, de ez nem oldott meg semmit. Nem hiszem, hogy pont az asp.net lenne a megoldás (főleg, mert ahhoz végkép nem értek), ha másik 4 programnyelvben sem sikerült megcsinálni rendesen. Azonban eljátszottam egy kicsit ezzel. Kitöröltem minden portot a forwarding részből. Ekkor se a 80-ast, se az 12345-öt nem észlelte. Hozzáadtam mindkettőt, elindítottam a szervert, meg az apache-t, a 80-ast megtalálta, az 12345-öt viszont nem. Nem értem, most mi van.

- Mindkét portot ugyan azon a módon engedélyeztem, ha a 80-as jó, a másiknak is annak kell lennie.

- Ha a szervert valamiért nem az 12345-ös portra állítottam volna be, miért tudok rá csatlakozni localhost:12345-ként.

- Ha a szervert nem úgy állítottam be, hogy kívülről is elérhető legyen, miért nem találtam eddig semmi leírást róla, és mi értelme lenne annak, hogy csak belülről érhetem el.

Egyéb tippem nincs. :D

Link to comment
Share on other sites

  • 3 weeks later...
payskin

Kléni, ha van 2300 forintod rá, esetleg érdekes lehet.

 

http://nomadphp072013.eventbrite.com/

 

Abstract: We'll start out with a brief introduction to WebSockets to get everyone up to speed before jumping in to high level scaffolding code of the frontend and backend implemetations (the spec). Once the groundwork has been layed, I'll introduce you to a both client and server side tools for implementing WebSockets directly in your PHP code. From here, we'll jump into multiple interactive demos of increasing complexity utilizing the open source Ratchet library. I'll walk through the source code of the first two intro demos to give you a better sense of how to structure your own WebSockets applications. If time allows, I'll run through a complex demo where I introduced WebSockets to an existing CRUD todo application. The last demo is not for the feint of heart. By the end of the presentation, you'll walk away with access to a github repository containing all of the presentation slides and demos ready to run yourself!
Link to comment
Share on other sites

kléni

Hoppá, még nem írtam erre. Ezt most kihagytam. Számos leírást néztem már arról, hogy hogyan kell 0-ról felépíteni egy ilyen szervert, szerintem sok újdonságot nem mondott volna. Azóta másik ismerősöm (a lustaság nagy úr, az ingyentolmács témába azóta se tettem fel :D) le is fordította ezt a problémát, és felraktam a stackoverflow oldalra, remélem, ott lesz valaki, aki tud megoldást.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...