Skip to content
/ KtoRC Public

A client-server IRC using WebSockets and Ktor, for CS 594 at Portland State University

Notifications You must be signed in to change notification settings

bradlet/KtoRC

Repository files navigation

KtoRC

An IRC Client-Server Project

Class Information

PSU Spring 2021
This is the final project for CS 594 - Internetworking Protocols

How to use

This project was made with the intention being that users are just people testing out the IRC client to see that it works. As a result, not a lot of work has been put into build processes.

Assumption: users are using Intellij to run the project (only confirmed working env)

  1. Clone the repo and open it in Intellij IDEA

  2. Press the green play button next to main in src/main/kotlin/com/ktorc/server/Application.kt

  3. Press the green play button next to main in src/main/kotlin/com/ktorc/client/ChatClient.kt

    1. To emulate multiple users, click on "Edit Configurations" in the dropdown at the top-right of the page. Then, enable parallel runs for the ChatClient by clicking the check box in the top right of the popup.
  4. Mess around.

Commands

Note on Commands

The server supports several 'commands'. These are well-known SCREAMING_SNAKE_CASE phrases which can appear at any point in a message. Frames with these are assumed to be "Command Frames" and will not be broadcast to the rooms a client may be in.

List of Supported Commands

Prefix all commands you wish to use with "cm&"; for example, "cm&JOIN_ROOM".

  • CREATE_ROOM [new room name] - Create new chat room (doesn't auto-join)
  • JOIN_ROOM [room name] - Join a chat room (Does nothing if the provided room doesn't exist)
  • LEAVE_ROOM [room name] - Leave a chat room (Same as previous command)
  • LIST_ROOMS - List all available rooms in the server
  • HERE - List all users in the rooms you currently occupy

About

A client-server IRC using WebSockets and Ktor, for CS 594 at Portland State University

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published