-
chatbalk
Hallo,
Op mijn site heb ik een soort chatbox staan, zodat als er meerdere bezoekers
online zijn, die elkaar 'tegen' kunnen komen. Nu zou ik graag iets anders
willen, namelijk een soort chatbalk in een frame onderin de pagina, waarin
in real-time met elkaar gechat kan worden. Dus eigenlijk niet een shoutbox,
maar gewoon een regel of 2 รก 3 tekst waarin bezoekers kunnen chatten met
elkaar (zonder in te loggen o.i.d.). Iemand enig idee waar ik zoiets zou
kunnen vinden?
Groet,
LK
-
Re: chatbalk
LK <liever@niet.nl> wrote:
> Op mijn site heb ik een soort chatbox staan, zodat als er meerdere bezoekers
> online zijn, die elkaar 'tegen' kunnen komen. Nu zou ik graag iets anders
> willen, namelijk een soort chatbalk in een frame onderin de pagina, waarin
> in real-time met elkaar gechat kan worden.
HTTP is IMHO hiervoor volkomen ongeschikt, het is immers stateless.
Volgens mij moet je je toevlucht zoeken tot allerlei plugins (bv java of
falsh).
BTW ben je de eigenaar van niet.nl? Indien dat niet het geval is zou je
de registrar hiervan dan niet met spam willen opzadelen?
--
Daniel Tryba
-
Re: chatbalk
Daniel Tryba wrote:
> LK <liever@niet.nl> wrote:
>
>>Op mijn site heb ik een soort chatbox staan, zodat als er meerdere bezoekers
>>online zijn, die elkaar 'tegen' kunnen komen. Nu zou ik graag iets anders
>>willen, namelijk een soort chatbalk in een frame onderin de pagina, waarin
>>in real-time met elkaar gechat kan worden.
>
> HTTP is IMHO hiervoor volkomen ongeschikt, het is immers stateless.
In principe kan je een pagina oneindig laten laden (dat is wat gtchat
doet) en deze telkens aanvullen middels een cgi script. Of een pagina
maken die elke x seconden een refresh doet en die aangevuld wordt door
een cgi script (en beperkt wordt tot n regels). De kreet file locking
komt hier zeker om de hoek :-D.
--
Kind regards, without shoes
John in my private hell
running naked
http://johnbokma.com/ a wishing well
-
Re: chatbalk
John Bokma <postmaster@castleamber.com> wrote:
>> HTTP is IMHO hiervoor volkomen ongeschikt, het is immers stateless.
>
> In principe kan je een pagina oneindig laten laden (dat is wat gtchat
> doet) en deze telkens aanvullen middels een cgi script.
Dat iets werkt voor bepaalde browser betekent nog niet dat het dan ook
geschikt is. Ik zag laatst bij mijn werkgever een mailtje van een blijde
gebruiker langskomen omdat de chat opeens in Opera werkte, de chat is al
jaren niet meer veranderd (werkt met de door gtchat beschreven s-s
push) en blijkt voor Opera 7.1x en lager niet te werken (evenzo niet in
firebird maar wel weer in mozilla!)...
Maar ondanks dat de auteur doet geloven dat het niet veel aan resources
kost (het is inderdaad bandbreedte vriendelijk) kost elke chatter in dit
geval dus 1 connectie naar de httpd, 1 perl instantie en een boel
geklooi om de berichten te synchronizeren (filelocking). Ik heb het
gevoel dat dit dan ook totaal niet schaalt!
> Of een pagina maken die elke x seconden een refresh doet en die
> aangevuld wordt door een cgi script (en beperkt wordt tot n regels).
Dat lijkt de OP al te hebben, maar schijnt niet te voldoen.
--
Daniel Tryba
-
Re: chatbalk
> BTW ben je de eigenaar van niet.nl? Indien dat niet het geval is zou je
> de registrar hiervan dan niet met spam willen opzadelen?
Hmm, je moet hier ook echt overal aan denken zeg :-s ...
Ik post al jaren met een soortgelijk adres ... dus bedankt dat je me er ff
op wijst dat ik hier andere mensen ongelukkig mee loop te maken...
Gr.LK
-
Re: chatbalk
Daniel Tryba wrote:
> John Bokma <postmaster@castleamber.com> wrote:
>
>>>HTTP is IMHO hiervoor volkomen ongeschikt, het is immers stateless.
>>
>>In principe kan je een pagina oneindig laten laden (dat is wat gtchat
>>doet) en deze telkens aanvullen middels een cgi script.
>
> Dat iets werkt voor bepaalde browser betekent nog niet dat het dan ook
> geschikt is. Ik zag laatst bij mijn werkgever een mailtje van een blijde
Klopt, de "oneindig laden" werkt niet als je provider geen oneindig
lange connecties toestaat, en dan wordt er met refresh pull gewerkt. Dat
ol werkt prima met IE, Firebird (dus alle Gecko's). Opera nog niet
geprobeerd, zal ik ff vragen :-D.
> gebruiker langskomen omdat de chat opeens in Opera werkte, de chat is al
> jaren niet meer veranderd (werkt met de door gtchat beschreven s-s
> push) en blijkt voor Opera 7.1x en lager niet te werken (evenzo niet in
> firebird maar wel weer in mozilla!)...
>
> Maar ondanks dat de auteur doet geloven dat het niet veel aan resources
> kost (het is inderdaad bandbreedte vriendelijk) kost elke chatter in dit
> geval dus 1 connectie naar de httpd, 1 perl instantie en een boel
> geklooi om de berichten te synchronizeren (filelocking). Ik heb het
> gevoel dat dit dan ook totaal niet schaalt!
Klopt (schalen). Aan (file) locking ontkom je niet overigens als je met
meerdere mensen ergens aan het praten bent :-D.
>>Of een pagina maken die elke x seconden een refresh doet en die
>>aangevuld wordt door een cgi script (en beperkt wordt tot n regels).
>
> Dat lijkt de OP al te hebben, maar schijnt niet te voldoen.
Heb ik dan gemist.
--
Kind regards, without shoes
John in my private hell
running naked
http://johnbokma.com/ a wishing well
-
Re: chatbalk
John Bokma <postmaster@castleamber.com> wrote:
>> Maar ondanks dat de auteur doet geloven dat het niet veel aan resources
>> kost (het is inderdaad bandbreedte vriendelijk) kost elke chatter in dit
>> geval dus 1 connectie naar de httpd, 1 perl instantie en een boel
>> geklooi om de berichten te synchronizeren (filelocking). Ik heb het
>> gevoel dat dit dan ook totaal niet schaalt!
>
> Klopt (schalen). Aan (file) locking ontkom je niet overigens als je met
> meerdere mensen ergens aan het praten bent :-D.
Ik kan me nog voorstellen dat het in bv Java servlets relatief eenvoudig
te doen is, je hebt dan immers de beschiking over synchronizatie,
thread(group)s en grapjes als RMI.
--
Daniel Tryba
-
Re: chatbalk
Daniel Tryba wrote:
> John Bokma <postmaster@castleamber.com> wrote:
>
>>>Maar ondanks dat de auteur doet geloven dat het niet veel aan resources
>>>kost (het is inderdaad bandbreedte vriendelijk) kost elke chatter in dit
>>>geval dus 1 connectie naar de httpd, 1 perl instantie en een boel
>>>geklooi om de berichten te synchronizeren (filelocking). Ik heb het
>>>gevoel dat dit dan ook totaal niet schaalt!
>>
>>Klopt (schalen). Aan (file) locking ontkom je niet overigens als je met
>>meerdere mensen ergens aan het praten bent :-D.
>
> Ik kan me nog voorstellen dat het in bv Java servlets relatief eenvoudig
> te doen is, je hebt dan immers de beschiking over synchronizatie,
> thread(group)s en grapjes als RMI.
Wat ik mij zo nog even herinner van servlets is dat 1 servlet door
meerdere processen aangeroepen kan worden, en.. dat 1 "webserver", die
vaak uit een aantal processen bestaat, elk haar eigen servlet instance
heeft... Hoe dan ook, er moet synchronisatie worden toegepast, iets waar
te vaak fouten worden gemaakt.
--
Kind regards, without shoes
John in my private hell
running naked
http://johnbokma.com/ a wishing well
-
Re: chatbalk
John Bokma <postmaster@castleamber.com> wrote:
>> Ik kan me nog voorstellen dat het in bv Java servlets relatief eenvoudig
>> te doen is, je hebt dan immers de beschiking over synchronizatie,
>> thread(group)s en grapjes als RMI.
>
> Wat ik mij zo nog even herinner van servlets is dat 1 servlet door
> meerdere processen aangeroepen kan worden, en.. dat 1 "webserver", die
> vaak uit een aantal processen bestaat,
Dat zijn gewoon threads, of een thread ook een apart process is voor het
OS is natuurlijk afhankelijk van het OS (bv Linux heeft dit "probleem")
> elk haar eigen servlet instance heeft...
Correct maar dat zijn gewoon threads binnen de zelfde VM en die kunnen
dus gewoon met elkaar communiceren en beschikken over de zelfde
variabelen op class scope.
> Hoe dan ook, er moet synchronisatie worden toegepast, iets waar te
> vaak fouten worden gemaakt.
Het synchronized keyword maakt dat relatief makkelijk :)
--
Daniel Tryba
-
Re: chatbalk
Daniel Tryba wrote:
> John Bokma <postmaster@castleamber.com> wrote:
>
>>>Ik kan me nog voorstellen dat het in bv Java servlets relatief eenvoudig
>>>te doen is, je hebt dan immers de beschiking over synchronizatie,
>>>thread(group)s en grapjes als RMI.
>>
>>Wat ik mij zo nog even herinner van servlets is dat 1 servlet door
>>meerdere processen aangeroepen kan worden, en.. dat 1 "webserver", die
>>vaak uit een aantal processen bestaat,
>
>
> Dat zijn gewoon threads, of een thread ook een apart process is voor het
> OS is natuurlijk afhankelijk van het OS (bv Linux heeft dit "probleem")
Yup yup
>>elk haar eigen servlet instance heeft...
>
> Correct maar dat zijn gewoon threads binnen de zelfde VM en die kunnen
> dus gewoon met elkaar communiceren en beschikken over de zelfde
> variabelen op class scope.
Ik dacht dat er meer VMs konden draaien, elk met 1 servlet, die weer
door meerdere processen aangesproken kan worden.. of zoiets.
>>Hoe dan ook, er moet synchronisatie worden toegepast, iets waar te
>>vaak fouten worden gemaakt.
>
> Het synchronized keyword maakt dat relatief makkelijk :)
relatief, inderdaad. synchronize is niet ingewikkelder dan file locking,
het probleem is dat het te vaak onjuist wordt gedaan, of niet...
--
Kind regards, without shoes
John in my private hell
running naked
http://johnbokma.com/ a wishing well
-
Re: chatbalk
John Bokma <postmaster@castleamber.com> wrote:
>> Correct maar dat zijn gewoon threads binnen de zelfde VM en die kunnen
>> dus gewoon met elkaar communiceren en beschikken over de zelfde
>> variabelen op class scope.
>
> Ik dacht dat er meer VMs konden draaien, elk met 1 servlet, die weer
> door meerdere processen aangesproken kan worden.. of zoiets.
Dat kan, echter VMs kunnen AFAIK niet direct met elkaar communiceren
(vast wel mbv RMI) en een ip/poort kan natuurlijk maar 1 keer gebind
zijn. MAW je bent nog een keer het geheugen voor een VM kwijt en je
schiet er niets mee op...
>>>Hoe dan ook, er moet synchronisatie worden toegepast, iets waar te
>>>vaak fouten worden gemaakt.
>>
>> Het synchronized keyword maakt dat relatief makkelijk :)
>
> relatief, inderdaad. synchronize is niet ingewikkelder dan file locking,
> het probleem is dat het te vaak onjuist wordt gedaan, of niet...
Daarom zijn er ook van de meeste storage object 2 versies, een
ge-synchronizde en een niet (bv resp. HashTable en HashMap)
--
Daniel Tryba
-
Re: chatbalk
Daniel Tryba wrote:
> John Bokma <postmaster@castleamber.com> wrote:
>
>>>Correct maar dat zijn gewoon threads binnen de zelfde VM en die kunnen
>>>dus gewoon met elkaar communiceren en beschikken over de zelfde
>>>variabelen op class scope.
>>
>>Ik dacht dat er meer VMs konden draaien, elk met 1 servlet, die weer
>>door meerdere processen aangesproken kan worden.. of zoiets.
>
> Dat kan, echter VMs kunnen AFAIK niet direct met elkaar communiceren
> (vast wel mbv RMI) en een ip/poort kan natuurlijk maar 1 keer gebind
> zijn. MAW je bent nog een keer het geheugen voor een VM kwijt en je
> schiet er niets mee op...
Nee, klopt. Maar ik meen mij te herinneren dat servlets in zo'n omgeving
kunnen draaien, maw je hebt geen garantie dat er 1 VM met 1 servlet
instance draait.
>>>>Hoe dan ook, er moet synchronisatie worden toegepast, iets waar te
>>>>vaak fouten worden gemaakt.
>>>
>>>Het synchronized keyword maakt dat relatief makkelijk :)
>>
>>relatief, inderdaad. synchronize is niet ingewikkelder dan file locking,
>>het probleem is dat het te vaak onjuist wordt gedaan, of niet...
>
> Daarom zijn er ook van de meeste storage object 2 versies, een
> ge-synchronizde en een niet (bv resp. HashTable en HashMap)
Yup, yup. Maar race conditions en buffer overflows zijn nog steeds de
meest voorkomende bugs vermoed ik. (Dat laatste niet in Java, hoewel je
natuurlijk vrolijk een poging kan doen om buiten een array te rommelen,
lukt niet, maar die poging kan je wel wagen :-D).
--
Kind regards, without shoes
John in my private hell
running naked
http://johnbokma.com/ a wishing well