Sziasztok.
Keresnék valakit aki otthon van a
fenti témában, ami a szerver oldal megvalósítását jelenti. Konkrétan.. nézegettem a net-en több IRC-s RFC-t, de nem
találtam sehol sem lényegi információt arról pl., hogy a szerver a csatorna listát, vagy a user listát milyen adat
strukturában köpi vissza.
Persze ki tudom nyomozni, ha muszály, de gondoltam hátha van valaki aki...
Üdv.
Fri
- 2095 megtekintés
Hozzászólások
Pedig viszonylag egyszerű rájönni RFC olvasgatás nélkül is...
# telnet extra.irc.hu 6667
Trying 195.70.37.253...
Connected to extra.irc.hu.
Escape character is '^]'.
:extra.irc.hu 020 * :Please wait while we process your connection.
USER ident 8 * :RealName
NICK MyNick
:extra.irc.hu 433 * MyNick :Nickname is already in use.
NICK MyNick2
:extra.irc.hu 433 * MyNick2 :Nickname is already in use.
NICK My-Nick
:extra.irc.hu 001 My-Nick :Welcome to the Internet Relay Network My-Nick!~ident@dsl.host.hu
:extra.irc.hu 002 My-Nick :Your host is extra.irc.hu, running version 2.11.1p1
:extra.irc.hu 003 My-Nick :This server was created Thu Jun 2 2005 at 09:58:44 CEST
:extra.irc.hu 004 My-Nick extra.irc.hu 2.11.1p1 aoOirw abeiIklmnoOpqrRstv
:extra.irc.hu 005 My-Nick RFC2812 PREFIX=(ov)@+ CHANTYPES=#&!+ MODES=3 CHANLIMIT=#&!+:25 NICKLEN=15 TOPICLEN=160 KICKLEN=160 MAXLIST=beIR:42 CHANNELLEN=50 IDCHAN=!:5 CHANMODES=beIR,k,l,imnpstaqr :are supported by this server
:extra.irc.hu 005 My-Nick PENALTY FNC EXCEPTS=e INVEX=I CASEMAPPING=ascii NETWORK=IRCnet :are supported by this server
:extra.irc.hu 042 My-Nick 348XAB31E :your unique ID
:extra.irc.hu 251 My-Nick :There are 94958 users and 7 services on 41 servers
:extra.irc.hu 252 My-Nick 193 :operators online
:extra.irc.hu 254 My-Nick 54109 :channels formed
:extra.irc.hu 255 My-Nick :I have 412 users, 0 services and 1 servers
:extra.irc.hu 265 My-Nick 412 648 :Current local users 412, max 648
:extra.irc.hu 266 My-Nick 94958 126649 :Current global users 94958, max 126649
:extra.irc.hu 375 My-Nick :- extra.irc.hu Message of the Day -
:extra.irc.hu 372 My-Nick :- 28/12/2004 19:12
:extra.irc.hu 372 My-Nick :- .===============================================================.
:extra.irc.hu 372 My-Nick :- : Jonagyot... Az extra diskje elszallt, igy sajna mindenunk :
:extra.irc.hu 372 My-Nick :- : elveszett (including mailok). :
:extra.irc.hu 372 My-Nick :- : Akinek van fuggoben levo ugye (ipv6 iline keres, kline torles :
:extra.irc.hu 372 My-Nick :- : vagy barmi egyebb, kerem kesobb szoljon. :
:extra.irc.hu 372 My-Nick :- : :
:extra.irc.hu 372 My-Nick :- : Jelenleg a hiba kijavitasa folyik. :
:extra.irc.hu 372 My-Nick :- `==============================================================='
:extra.irc.hu 376 My-Nick :End of MOTD command.
:My-Nick MODE My-Nick :+i
WHOIS My-Nick
:extra.irc.hu 311 My-Nick My-Nick ~ident dsl.host.hu * :RealName
:extra.irc.hu 312 My-Nick My-Nick extra.irc.hu :Extra, Budapest
:extra.irc.hu 317 My-Nick My-Nick 5 1139815288 :seconds idle, signon time
:extra.irc.hu 318 My-Nick My-Nick :End of WHOIS list.
JOIN #channel
:My-Nick!~ident@dsl.host.hu JOIN :#channel
:extra.irc.hu 353 My-Nick @ #channel :My-Nick OtherUser @Operator @Moderator @Terminator
:extra.irc.hu 366 My-Nick #channel :End of NAMES list.
NAMES #kodo
:extra.irc.hu 353 My-Nick @ #channel :My-Nick OtherUser @Operator @Moderator @Terminator
:extra.irc.hu 366 My-Nick #channel :End of NAMES list.
MODE #channel
:extra.irc.hu 324 My-Nick #channel +stn
MODE #channel +b
:extra.irc.hu 367 My-Nick #channel nick!ident@host
:extra.irc.hu 367 My-Nick #channel *ban*!*mask*@*
:extra.irc.hu 367 My-Nick #channel trey!hup@195.228.252.138
:extra.irc.hu 368 My-Nick #channel :End of Channel Ban List
LIST
:extra.irc.hu 322 My-Nick #otherchannel 1 :
:extra.irc.hu 322 My-Nick #sähkö 1 :
:extra.irc.hu 322 My-Nick #xavius 1 :
:extra.irc.hu 322 My-Nick #HT_sukille 1 :
:extra.irc.hu 322 My-Nick !4LJFNsql-gurut 2 :
:extra.irc.hu 322 My-Nick #linux_help 1 :
:extra.irc.hu 322 My-Nick #Roadtrip 1 :
:extra.irc.hu 322 My-Nick #abusement_park 1 :
...
QUIT :Quit Message
ERROR :Closing Link: My-Nick[~ident@dsl.host.hu] ("Quit Message")
De ugye nem spam botot akarsz irni? :)
- A hozzászóláshoz be kell jelentkezni
Köszi.. ebből már tényleg értek valamit.
Valóban könnyű.. basszus.. ciki nem ciki eszembe sem jutott, hogy igy nézzem meg.:)
Nem spam botot.. egy java-s kliens-szervert irok, és mivel később akarok hozzá egy IRC-s interfészt, gondoltam megnézem a válasz adatstrukturáját egy IRC szervernek.
De látom bejött a tippem.. nincsennek sorrendben a felhasználónevek és a szobanevek..
Azt is sejtettem, hogy elég perverz protokoll.. az is bejött:))
Azt esetleg nem tudod, hogy a listák szinkronizációja miként történik?
A szerver "inditja", vagy a cliens oldal kezdeményezi?
Ugyanis két applet-et is megvizsgáltam, de nem volt egyértelmű..
(Tudom van tcpdump is..:)
Fri
- A hozzászóláshoz be kell jelentkezni
A felhasználó nevek az adott csatornákon beérkezés szerinti forditott sorrendben van. Tehát az előző postnál:
:extra.irc.hu 353 My-Nick @ #channel :My-Nick OtherUser @Operator @Moderator @Terminator
:extra.irc.hu 366 My-Nick #channel :End of NAMES list.
My-Nick (én) lépett be utoljára, előtte OtherUser, azelőtt Operator, legrégebb óta pedig Terminator van a csatornán. Ez viszont nem jelenti azt, hogy Terminator hozta létre a csatornát, hisz aki létrehozta az idő közben ki is léphetett már...
Csatorna sorrend ugyanígy van. A lista legelső tagja a legújabb, legutolsó tagja a legrégebben létrehozott (és még létező) csatorna. A LIST parancs azonban csak azokat a csatornákat listázza ki, amelyek _nem_ rendelkeznek +s flaggel (Secret mode).
A csatornák listáját alapból nem szokta lekérni egyébként a kliens (mivel régebben ilyenkor rendszerint "Excess Flood" üzenet kiséretében kidobta a szerver a klienst a nagy adatfolyam miatt), így ilyenfajta szinkronizáció nem történik. Ami eseteg téged megtéveszthet, az a kliensek esetében előre letárolt ("off-line") csatorna lista, amely azonban nincs semmiféle összhangban a szerveren lévőkkel. Olyan ez, mint a böngészőben a 'Kedvencek'.
- A hozzászóláshoz be kell jelentkezni
Az az igazság sok mindennel megdöbbentettél.. bár tény
egyszerűsíti nekem a dolgokat.
Amiben még teljesen homály vagyok.. és lehet tudod erre is a választ, hogy amikor belépsz egy csatornába ugye akkor is listázza a csatornában lévő felhasználókat. A kérdésem az lenne, bár az elözőek sejtetik a választ, hogy azt a listát is a cliens frissiti?
Lekéri ismét a teljes listát?
Egyébként, ha nem titok, Te honnan vagy ennyire otthon az IRC-ben?:)
Fri
- A hozzászóláshoz be kell jelentkezni
Ahogy az első posztomnál is látszódik a csatornára való belépés után (JOIN #channel) azonnal megkapja a kliens a szervertől a csatornán tartozkodó felhasználók listáját. Ezt később nem kell újra lekérnie a kliensnek (bár lehetősége van rá a NAMES paranccsal, amit kicsit el is írtam, mert #channel helyett #kodo maradt :)), ugyanis saját maga is képes követni a JOIN/PART üzenetek alapján.
JOIN #channel
:My-Nick!ident@dsl.host.hu JOIN :#channel
extra.irc.hu 353 My-Nick @ #channel :My-Nick OtherUser @Operator @Moderator @Terminator
:extra.irc.hu 366 My-Nick #channel :End of NAMES list.
:MrJoiner!guest@foobar.org JOIN :#channel
:MrJoiner!guest@foobar.org PART #channel :leaving message
A szervertől érkező JOIN üzenetkor a kliens hozzáadja a felhasználó listájához MrJoiner-t, PART esetén pedig elveszi a listájából, tehát dinamikusan tudja követni, nincs szükség teljes nick lista lekérésre (ez nagy csatorna esetén egyébként is hosszú listát jelentene és pazarolná a sávszélességet :).
Én elég régóta IRC-zem, aztán ragadt rám ez-az a sok-sok év alatt... ;)
- A hozzászóláshoz be kell jelentkezni
Nagyjából akkor ez is ugy müködik ahogy vártam.. logikusan.:)
Mindenesetre köszi a segitséget.. sokat segitettél.. jövök egy korsóval.:)
Fri
- A hozzászóláshoz be kell jelentkezni
Majd szólok treynek, hogy csináljon per-user korsó-countert a hup-ra... :P
- A hozzászóláshoz be kell jelentkezni