Thread: JAGGRAB Protocol

Results 1 to 7 of 7
  1. #1 JAGGRAB Protocol 
    Registered Member
    Join Date
    Apr 2016
    Posts
    26
    Thanks given
    6
    Thanks received
    15
    Rep Power
    71
    I haven't posted here in a long time. However, recently I was browsing Github and Rune-Server looking into the current frameworks and servers being developed. I noticed most of these servers don't make use of the JAGGRAB protocol. I also noticed that there are very few sources of documentation for the JAGGRAB protocol online. Simply googling the term JAGGRAB will only provide one or two viable results. I believe more people would make use of this service if they could see it in a simplified format.

    Ive written a small implementation to help put this into perspective. This is written as an example and does not reflect my programming style.
    https://github.com/dylanvicc/Jaggrab...on/net/jaggrab

    I've also included a sample network infrastructure for all the necessary encoders & decoders to help demonstrate how all the client's protocol fits together.
    https://github.com/dylanvicc/Aranea/...com/aranea/net

    What is JAGGRAB?
    JAGGRAB is the text based protocol that RuneScape clients use to request files from the server. This eliminates the need to have a user download a cache manually from an online source via the client. Every request is sent to the server in the form of a string and prefixed with the text JAGGRAB.
    Code:
    String request = StandardCharsets.UTF_8.decode(buffer).toString();
    Once the server receives this request it then writes the appropriate data back to the client. The requests are broken up as follows.
    Code:
    "/crc" requests the cyclical redundancy checks for the files.
    "/title" requests the tile screen components. 
    "/config" requests the configuration files.
    "/interface" requests the interface file.
    "/media" requests the media files.
    "/textures" request the textures.
    "/wordenc" requests the chat filter.
    "/sounds" requests the audio files.
    Every-time the client makes a request, it does so on a new socket connection. This means you will either need to manually close the connected socket after a file request is served or implement a time-out procedure. These connections will generally be serviced on the port 43595. Unlike the Ondemand protocol which functions on the same server as the actual game service, the JAGGRAB protocol runs on it's own server.

    CRC Checks
    The CRC checks are generated on the server's end and written as the first request in the protocol. These are written first as their purpose is to help detect any illegal modifications or inconsistencies in data. These checks are relatively simple to generate and each attached to a file. Each individual checksum is written back as an integer. A final singular hash code of the checksums is then written as well.

    File Data Structure
    The protocol for reading from specific files.
    Code:
    length : tri-byte (3 bytes)
    block : tri-byte (3 bytes)
    
    next_file : unsigned short (2 bytes)
    current_chunk : unsigned short (2 bytes)
    next_block : tri-byte (3 bytes)
    next_type : unsigned byte (1 byte)
    Reply With Quote  
     


  2. #2  
    Renown Programmer & Respected Member

    Ryley's Avatar
    Join Date
    Aug 2011
    Posts
    596
    Thanks given
    254
    Thanks received
    521
    Rep Power
    1332
    hi mr dylan where have u been
    Reply With Quote  
     

  3. #3  
    Banned
    Join Date
    Mar 2018
    Posts
    43
    Thanks given
    16
    Thanks received
    1
    Rep Power
    0
    hmm, interesting thank you.
    Reply With Quote  
     

  4. #4  
    Registered Member
    Brainpower's Avatar
    Join Date
    Jan 2019
    Posts
    130
    Thanks given
    13
    Thanks received
    13
    Rep Power
    101
    Cheers, if you start using an update server you should go with JS5 though as it's much faster.
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Apr 2016
    Posts
    26
    Thanks given
    6
    Thanks received
    15
    Rep Power
    71
    Quote Originally Posted by Ryley View Post
    hi mr dylan where have u been
    Fell off after Moparscape shut down. I still lurk though and occasionally program. More so in the winter.
    Reply With Quote  
     

  6. #6  
    Registered Member
    Join Date
    May 2016
    Posts
    35
    Thanks given
    9
    Thanks received
    2
    Rep Power
    11
    Thanks for this. I remember you as well
    Reply With Quote  
     

  7. #7  
    Registered Member
    Join Date
    Apr 2020
    Posts
    2
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Thank you for this, currently I'm learning the rs2 protocol this will come a long way
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 2
    Last Post: 03-03-2015, 11:31 PM
  2. jaggrab Protocol
    By natsu in forum Help
    Replies: 10
    Last Post: 09-20-2014, 06:24 PM
  3. 317+ JAGGRAB Protocol
    By Tom in forum Informative Threads
    Replies: 11
    Last Post: 11-12-2012, 03:47 AM
  4. The current RuneScape 2 protocol
    By veer in forum Informative Threads
    Replies: 40
    Last Post: 06-13-2009, 07:14 PM
  5. Encouragin's 474 (XSocket protocol)
    By Encouragin in forum Downloads
    Replies: 7
    Last Post: 01-22-2009, 07:13 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •