[java] chat applicatie zonder server

Pagina: 1
Acties:

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Zo ik wil zelf een chat programma schrijven, het liefst met de mogelijkheid om bestanden uit te wisselen, topics aan maken nou ja qua functionalieit moet er behoorlijk wat inkomen van mij. Maar ik kreeg net te horen dat ik met de volgende beperking moet werken....

Op de webserver draait geen java en dat willen ze ook liever niet. Nu dacht ik dat dit wel lastig gaat worden omdat je hierdoor dus ook geen chatserver hebt. Nu draat daar wel mySQL. Hierin zou je iig de locaties bij kunnen houden van iedereen en kun je sessie variabelen opslaan.

Nu vroeg ik mij af of er technieken zijn die een server uitsluiten, dat iedereen tegelijkertijd server en client is. Ik ben dan alleen bang voor slechte performance, een hoop extra dataverkeer, slechte integriteit, data die op meerdere plekken opgeslagen staat etc. Oftwel ik zie alleen maar nadelen.

Zijn er andere positieve punten of spelen de nadelen die ik maak niet mee?

Groetjes


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:47
Hmmm....
Je kunt je chat-applicatie natuurlijk ook in iets anders schrijven dan Java. Dan kan je wel een server gebruiken.

https://fgheysels.github.io/


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Ja dat is in principe een hele goede oplossing, ware het niet dat ik dit idee juist wilde gebruiken om mijn java-kennis te toetsen. Het zou namelijk onder andere de eerste keer zijn dat ik echt met threads zou gaan werken. Ik heb ook aan andere technieken gedacht hoor, maar java kwam er bij mij uit. Het moet namelijk ook geintegreerd worden met een site maar ik wil er meteen een stand alone van maken. Ik heb voor mezelf vrij duidelijk voor java gekozen.

Groetjes


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 02-08 23:13

4VAlien

Intarweb!

Volgens mij kan het niet tenzij je een soort direct connect achtig netwerk opzet. Chatten over mySql lijkt me niet echt een fijne oplossing. Applets mogen ook niet met een willekeurig andere (irc) server connecten, dus dat betekent dan dat je alles via die sql zou moeten doen. Het kan vast wel maar it ain't gonna be pretteh!

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Ja hier heb ik ook aan gedacht, peer to peer, maar ik dacht dat je hier alsnog een server voor moest opzetten, alleen met clients ben je er toch niet? Zo zou het bekend maken van clients aan elkaar een hoop redundant data opleveren.

Fuck, ik heb te weinig kennis van p2p om hier over te kunnen redeneren merk ik al...back to the books

[ Voor 3% gewijzigd door yrew op 28-02-2003 12:26 ]

Groetjes


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Ik wilde de alleen de locatie van de clients in een tabel bijhouden in mySQL, daarnaast misschien de userInfo en dat is best te doen. Ik wil liever met irc niks te maken hebben daar ik het helemaal zelf op wil lossen.

Groetjes


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Ik lees steeds vaker dat een applet alleen kan connecten met de server vanwaar hij komt, maar dit is toch op te lossen dmv het signen van je applet


Whoami: Mijn oprechte dank en excuses

[ Voor 14% gewijzigd door yrew op 28-02-2003 13:26 ]

Groetjes


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:47
yrew, mag ik je ff op het bestaan van de edit-knop wijzen?

https://fgheysels.github.io/


Verwijderd

yrew schreef op 28 February 2003 @ 13:08:
Ik lees steeds vaker dat een applet alleen kan connecten met de server vanwaar hij komt, maar dit is toch op te lossen dmv het signen van je applet
Dat klopt, het is gewoon een default restrictie...

edit:
laat ik ook is proberen wat zinnigs te zeggen...
Je kunt inderdaad in een database gebruiken om de locaties bij te houden. Houd alleen wel rekening met het feit dat als een client crashed deze zivhzelf niet uit de db kan verwijderen. De andere clienten moeten dus ook reen controleerende taak uitvoeren. Misschiern moet elke client een of meerdere controle clienten krijgen o.i.d. kunnen ze elkaar een beetje in de gaten houden

[ Voor 43% gewijzigd door Verwijderd op 28-02-2003 13:22 ]


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Durf bijna niet te replyen, maar de lokaties opslaan in een database is bij nader inzien, geen mooie, en evenmin een leuke oplossing. Hetgeen mark net beschrijft komt wel in de richting. Ik dacht meer aan een boom structuur.

Goed echter voor ik ga verzanden in dom gelul en alles mij voor gekauwd gaat worden straks. Iik heb nieuwe invalshoeken gekregen die onderzocht moeten worden.

Het blijkt dus mogelijk zonder server een chatomgeving op te zetten.

Het volgende wat ik zal moeten ontdekken is hoe je clients met elkaar verbind zonder dat ze veel van elkaar afweten. En zonder dat er een vreselijk lag in het netwerk komt als client a iets zegt tegen client b die via allerlei clients met elkaar verbonden zijn

Groetjes


Verwijderd

chat client ip ranges laten proben in plaats van een broadcast, en in een client bijhouden wat de meest voorkomende ranges zijn met kans op succes voor een andere client...

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
struikel, val, verslik...Sorrie wat? Ik begrijp je denk ik niet.

Groetjes


  • Baron
  • Registratie: Juli 2000
  • Laatst online: 21-06 17:02
Misschien http://www.jxta.org/ eens bekijken.

Is een API voor P2P apps

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 12:24

Super_ik

haklust!

udp protocol gebruiken?

[ Voor 5% gewijzigd door Super_ik op 28-02-2003 13:46 ]

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Verwijderd

Je kunt die database wel gebruiken, als je ook gebruik maakt van een time-out systeem. Een client zou zich iedere minuut (ofzo) moeten melden bij de mySQL server, en daar ook kijken of er nieuwe clients zijn. Dan kun je daar een directe verbinding mee maken, of kijken of iemand anders er al een directe verbinding mee heeft. Als een client zich meldt krijgt het een lijst met een boel actieve clients. (clients die zich langer dan een minuut niet gemeld hebben kunnen wel actief zijn, maar worden niet terug gegeven door de SQL server.)

Een applet gaat overigens niet werken als je een peer to peer oplossing wilt maken...

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Mijn dank is overigens erg groot, maar dat moge vanzelfsprekend zijn. Ik ben jxta al aan het downloaden. En als er meer tips zijn van API's graag, ik zit zometeen minimaal drie weken zonder internet dus ik ben er heel wat van plan door te nemen.

udp heb ik geloof ik nog neit over gehoord, maar ik ga daar snel naar kijken.

Nog een kleine uiitleg waarom ik kies voor twee oplossingen qua user interface. Er moet wat geintegreerd worden in een site van een vriend van me. Dit draait dan voornamelijk om de chat functionaliteit. Alle verdere functionaliteit wil ik in een stand-alone programma gaan mikken.

De applet hoeft dus maar een beperkt stukje functionaliteit te hebben, ik denk dat ik hier nog wel oplossingen voor vind.

Groetjes


Verwijderd

Verwijderd schreef op 28 February 2003 @ 13:49:
Een applet gaat overigens niet werken als je een peer to peer oplossing wilt maken...
Hou daar toch is mee op, dat kan wel...

  • martijn_brinkers
  • Registratie: November 2001
  • Laatst online: 31-10-2025
Udp zou ik niet doen. Dat is eigenlijk alleen zinvol als je real time dingen wil doen. Udp heeft totaal geen error correctie en dat moet je er dan zelf omheen maken (geen pretje). Ook kan je veel meer last hebben met firewalls als je udp gebruikt. Udp kan wel handig zijn als je real time data wil versturen (zoals game servers, radio etc.)

  • No13
  • Registratie: Januari 2001
  • Laatst online: 09:15

No13

/me was here

en UDP bij file transfers.....CRC error anyone :D?

het is wel te doen zonder server maar zonder server is in de praktijk bijna altijd vertraging of onbereikbaarheid van een groot deel van het netwerk, stel dat 1 client een brug is tussen meerdere mensen en hij stopt ermee dan moeten die mensen die daaraan gekoppelt zaten een nieuwe "brug" zoeken, tenminste ik ga er vanuit dat je in de clients toch een soort van server maakt zodat iedere deelnemer een client en server is...

Misschien is het toch makkelijker ergens een lokatie te zoeken waar je een server kan draaien, al is het maar voor de registrstie van de online gebruikers

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
tijdje terug mbv FlashMX (front-end) -> PHP -> mySQL een chat opgezet. Realtime is het niet te noemen omdat de FlashMX steeds een 'poll' moet doen elke 2 secs. Maar het werkt wel (wel een hoop gedoe met wanneer iemand 'verlaat' aangezien ik nergens een 'onQuit' vind in MX). File sharing natuurlijk niet :) maar je kan wel Upload naar de server (HTTP form of course) en kunnen de anderen het downloaden... Misschien een ActiveX plugin met VB (Direct Connect anyone?)

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 10:19

Robtimus

me Robtimus no like you

yrew schreef op 28 februari 2003 @ 12:14:
Ja dat is in principe een hele goede oplossing, ware het niet dat ik dit idee juist wilde gebruiken om mijn java-kennis te toetsen. Het zou namelijk onder andere de eerste keer zijn dat ik echt met threads zou gaan werken. Ik heb ook aan andere technieken gedacht hoor, maar java kwam er bij mij uit. Het moet namelijk ook geintegreerd worden met een site maar ik wil er meteen een stand alone van maken. Ik heb voor mezelf vrij duidelijk voor java gekozen.
Toch misschien Python overwegen anders? Dat kent ook threads, en wordt vaak ondersteund op webservers (wel ff navragen natuurlijk).

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 23-08 21:29
Nou een request om de twee seconden lijkt me een beetje overbodig, ik denk dat de serverload enorm wordt. Daarnaast verplicht je mensen om met een modem om bij een refresh de gehele tekst te downloaden. De php oplossing lijkt mij dus minder geschikt.

Python heb ik net het een en ander over zitten lezen. En ik denk dat ik toch bij good old java blijf. Wat de boer niet kent dat eet hij niet, maar ook het feit dat ik nog geen java code in mijn slaap typ heeft hier mee te maken. Misschien dat ik hierna eens ga kijken naar een andere taal.

[ Voor 3% gewijzigd door yrew op 01-03-2003 14:29 ]

Groetjes


  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
Je kan toch ook alleen de clients in java schrijven en de server in een andere taal :?

Java kan je laten connecten over een socket en de server kan gewoon een socket open zetten. De taal waarin beide partijen geschreven zijn merken dat niet eens van elkaar :)

Leeg

Pagina: 1