Giter VIP home page Giter VIP logo

subscriber-publisher_app's Introduction

Subscriber-Publisher_app

Short description of application

This project is a small publisher-subscriber application, in which the communication is done via TCP and UDP.

Subscriber (TCP client)

This subscriber client can subscribe to different messaging topics and recieve notifications with the messages that are published.

The TCP clients support duplex communication with the server.

Publisher (UDP client)

The udp clients send messages (UDP datagrams) to the server, under different topics.

Server

  • The server acts as a broker between the subscribers and the publisher. It manages the TCP and UDP connections, recieves messages from the publishers and delivers them to the subscribers.

  • The server supports two types of communication:

    • simplex - recieve datagrams from UDP clients
    • duplex - send / recieve data to / from TCP clients
  • The server supports multiple clients, by using multiplex socket communication.

  • The server implements a store&forward feature: while the clients are disconnected, the server can store messages and deliver them to the clients when they reconnect.

Notes

  • Running the code

    1. ./subscriber {id_user} {ip_server} {port_server}
    2. ./server {port_server}
    3. python3 udp_client.py {ip_server} {port_server}
  • Subscriber commands

    1. subscribe {topic} {SF} (SF = store&forward - 0/1 value that enables the feature to store messages while the clients are disconected)
    2. unsubscribe {topic}
    3. exit

subscriber-publisher_app's People

Contributors

ruxg avatar

Watchers

 avatar

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.