1. Dokumentasi Protokol Client Server
PEMROGRAMAN JARINGAN
KELAS F
Arifian Rahardianda 5111100141
Fajar Setiawan 5112100010
Luthfi Firmansyah Soehadak 5112100016
Adiyat Nurkautsar Sudirman 5112100065
R. M. Iskandar 5112100101
Jurusan Teknik Informatika - Institut Teknologi Sepuluh Nopember
Kampus ITS Keputih Sukolilo Surabaya
2. Format data inisialisasi koneksi
Format data yang dikirim client (request) :
{"REQ":"[request type]", "MESSAGE":"[request message]",
"DATA":{"SESSION_KEY":"[session key]", "CONTENT":"[sent/received
data or message content]", "TYPE":"[data type]"}}
Format data respon dari server :
{"STATE":"[state type]", "MESSAGE":"[response message]",
"DATA":{"SESSION_KEY":"[session key]", "CONTENT":"[sent/received
data or message content]", "TYPE":"[data type]"}}
Penjelasan format pesan :
REQ : Berisi jenis request yang diminta oleh client kepada server
STATE : Berisi jenis state untuk client, jadi ketika client menerima response dari
server dan membaca isi dari STATE, maka client akan berpindah ke state sesuai
response server
MESSAGE : Berisi string pesan request / response, yang nantinya akan
diterjemahkan disisi client / server menjadi pesan. Misal MESSAGE : LOGIN_OK
akan diterjemahkan client menjadi pesan “Anda telah berhasil login.”
DATA : SESSION_KEY (session key untuk tiap user yang berisi key, username
dan room), CONTENT (data yang dikirim atau diterima atau isi pesan) ,
TYPE(tipe data yang dikirim atau diterima)
Jenis type data : AUTH(untuk pengiriman username dan password), LIST(untuk
data array), TEXT(tipe data untuk pesan), NULL(tidak ada data yang dikirimkan)
Data yang dikirim dipisah dengan karakter “:”
Login
Format Client
{"REQ":"login", "MESSAGE":"REQ_LOGIN", "DATA":{"SESSION_KEY":" ",
"CONTENT":[username and password]}, "TYPE":"AUTH"}}
Format Server
Session Key : Key, Username, dan Room(none)
3. - Login Berhasil
{"STATE":"feature", "MESSAGE":"LOGIN_PERMIT",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ",
"TYPE":"NULL"}}
- Login Gagal (penginputan salah)
{"STATE":"login", "MESSAGE":"LOGIN_FAILED",
"DATA":{"SESSION_KEY":" ", "CONTENT":" ", "TYPE":"NULL"}}
- Login Gagal (double login)
{"STATE":"login", "MESSAGE":"SESSION_FAILED",
"DATA":{"SESSION_KEY":" ", "CONTENT":" ", "TYPE":"NULL"}}
Register
Format Client
{"REQ":"register", "MESSAGE":"REQ_REGISTER", "DATA":{"SESSION_KEY":"
", "CONTENT":[username and password]}, "TYPE":"AUTH"}
Format Server
Session Key : Key, Username, dan Room(none)
- Register Berhasil
{"STATE":"login", "MESSAGE":"REGISTER_PERMIT",
"DATA":{"SESSION_KEY":" ", "CONTENT":" ", "TYPE":"NULL"}}
- Register Gagal
{"STATE":"register", "MESSAGE":"REGISTER_FAILED",
"DATA":{"SESSION_KEY":" ", "CONTENT":" ", "TYPE":"NULL"}}
Logout
Format Client
{"REQ":"logout", "MESSAGE":"REQ_LOGOUT",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ", "TYPE":"NULL"}}
Format Server
Session Key : dihapus
{"STATE":"welcome", "MESSAGE":"LOGOUT_SUCCESS",
"DATA":{"SESSION_KEY":" ", "CONTENT":" ", "TYPE":"NULL"}}
4. Create Room
Format Client
{"REQ":"create", "MESSAGE":"REQ_CREATE",
"DATA":{"SESSION_KEY":[session key], "CONTENT":"[room name and room
password]", "TYPE":"AUTH"}}
Format Server
Session Key : Key, Username, dan Room Name
- Create Room Berhasil (SessionKey Update)
{"STATE":"chat", "MESSAGE":"CREATE_SUCCESS",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ",
"TYPE":"NULL"}}
- Create Room Gagal
{"STATE":"feature", "MESSAGE":"CREATE_FAILED",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ",
"TYPE":"NULL"}}
List Room
Format Client
{"REQ":"list_room", "MESSAGE":"REQ_LIST_ROOM",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ", "TYPE":"NULL"}}
Format Server
Session Key : Key, Username, dan Room(none)
{"STATE":"join", "MESSAGE":"LIST_ROOM",
"DATA":{"SESSION_KEY":[session key], "CONTENT":[list room],
"TYPE":"LIST"}}
Join Room
Format Client
{"REQ":"join", "MESSAGE":"REQ_JOIN", "DATA":{"SESSION_KEY":[session
key], "CONTENT":"[room name and room password]", "TYPE":"AUTH"}}
Format Server
Session Key : Key, Username, dan Room Name
5. - Join Room Berhasil (SessionKey Update)
{"STATE":"chat", "MESSAGE":"JOIN_SUCCESS",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ",
"TYPE":"NULL"}}
- Join Room Gagal
{"STATE":"join", "MESSAGE":"JOIN_FAILED",
"DATA":{"SESSION_KEY":"[session key]", "CONTENT":[list room] ,
"TYPE":"LIST"}}
Chat
Format Client
{"REQ":"chat", "MESSAGE":"IN_CHAT", "DATA":{"SESSION_KEY":[session
key], "CONTENT":[chat content], "TYPE":"TEXT"}}
Format Server
Session Key : Key, Username, dan Room Name
{"STATE":"chat", "MESSAGE":"IN_CHAT",
"DATA":{"SESSION_KEY":"[session key]", "CONTENT":[chat content] ,
"TYPE":"TEXT"}}
Leave Chat Room
Format Client
{"REQ":"leave", "MESSAGE":"LEAVE_CHAT",
"DATA":{"SESSION_KEY":[session key], "CONTENT":[chat content] ,
"TYPE":"TEXT"}}
Format Server
Session Key : Key, Username, dan Room(none)
{"STATE":"feature", "MESSAGE":"LEAVE_SUCCESS",
"DATA":{"SESSION_KEY":[session key], "CONTENT":" ", "TYPE":"NULL"}}