Giter Club home page Giter Club logo

agnimessenger's People

Contributors

beaesguerra avatar enochtsang avatar jeinglis avatar mfalthaw avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

jeinglis mfalthaw

agnimessenger's Issues

Client Hearbeat Receiver Test and Implementation

The HeartbeatReceiver in the client needs tests written for it as well it's implementation. It's listeners should receive a proper message once the receiveMessage function is called. On hold until PR #28 is merged.

Client Chat Receiver Test and Implementation

The ChatReciever in the client needs tests written for it as well it's implementation. It's listeners should be receive a proper message once the receiveMessage function is called. On hold until PR #28 is merged.

Server Listener Interfaces

The server listener interfaces should have their methods added. Files involved are:

LoginListener.java
UserListener.java
ChatListener.java
FileListener.java
InfoListener.java
StatusListener.java

Client Instantiation

The client needs to be constructed in the main of AgniClient.java. This means writing constructors and passing in what needs to be passed in to what.

Server Listener Logic

The Receivers in the server currently have no logic in them, they should be pretty easy to add in.

Specifically, the functions register() and their respective notifyListener() functions can be filled in pretty easily.

The files that need this are
ChatReceiver.java
notifyFileRequest.java
HeartbeatReceiver.java
InfoRequestReceiver.java
LoginReceiver.java

Client Message Receiver Connection Logic

Message receiver needs to have it's run method implemented.

The run method is a threaded function that waits for messages from it's tcpSocket. Every message that it receives, it checks its message type, then passes the entire message onto the corresponding Receiver. This also means that the MessageReceiver needs reference to each of the receivers. It's constructor will need to be updated.

On hold until PR #28 is merged.

Client Status Receiver Test and Implementation

The StatusReceiver in the client needs tests written for it as well it's implementation. It's listeners should receive a proper message once the receiveMessage function is called. On hold until PR #28 is merged

Notify friends when a user disconnects

Once HeartbeatManager is merged in, notify StatusManager after disconnect to tell friends that the disconnected user is now offline.

(do this in StatusManager branch)

Server Message Sender sendMessage() implementation

We can implement the sendMessage(byte[] message) method in MessageSender.java in the server.

This method should send the provided byte array to the server.

This class should have it's main method implemented as well so we can manually test if it works or not. It will take input for bytes we can send and then we can manually verify the client is receiving these messages through this main method.

Connect methods Stubs

MessageSender and MessageReceiver on both the server and client will need a connect method that gets an InetAddress for IP and an int for a port passed in.

Server dataguards

The DataGuards for the server are commented out becasue we don't know the types. Right now they should all be strings.

Server sender method parameters

The methods for the senders right now are commented out because we didn't know the parameter types.

Since the managers are using the senders directly, these types should also be as simple as possible. I think all the parameters should be strings, if there's any question on that let me know, otherwise strings should suffice for all parameters in the senders.

Client Message Sender sendMessage() implementation

After PR #28 is merged, we can implement the sendMessage(byte[] message) method in MessageSender.java in the client.

This method should send the provided byte array to the server.

This class should have it's main method implemented as well so we can manually test if it works or not. The main should be passed command line arguments of the server so it can connect to the server, it'll then take input for bytes we can send and then we can manually verify the server is receiving these messages through this main method.

Client Action Handler Method Stubs

We can easily add the methods for client action handler. The files involved are:

ChatActionHandler.java
FileActionHandler.java
HeartbeatActionHandler.java
LoginActionHandler.java
UserActionHandler.java

Client Receiver Methods

We need to add stubs for all the client receiver classes. Files involved are:

ChatReceiver.java
FileReceiver.java
HeartbeatReceiver.java
InformationReceiver.java
MessageParser.java
ReceiverListener.java
StatusReceiver.java

Server instantiation

AgniServer.java is empty, it needs to create all the modules and them into each other as necessary.

Client View Stub

The AgniClientView.java interface needs to have its method stub added.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.