Skip to content

The Dummy Programmer

Stories of daily programming

  • Home
  • The Dummy Programmer Robot
    • Overview
    • Version history & downloads
    • Tutorials
      • TDP Robot – The basics
      • A simple SQL Server backup solution
      • A simple SQL Server backup solution – A next step
  • My other dummy projects
  • Games
    • Space Y: An Asteroids clone
  • Services
    • What’s my user agent
    • What’s my IP address
  • About
  • Toggle search form

Push notifications library with C# and .NET Framework

Posted on January 30, 2020April 24, 2020 By

Good morning folks!

A few days have passed since our last contact… And here I am talking about a topic that I find very interesting: push notifications.

I know that there are existing libraries that already do this job and that probably cover your needs (for example you could look at SignalR from Microsoft).

But since I’m a dummy programmer, and I wanted to learn something new, I started developing my own library just to play the game.

These are the goals I set for my library:

  • must be fully developed in C#
  • must work asynchronously
  • must be event driven
  • must provide some kind of authentication
  • must allow to send a message string to the connected client

Working on this library was a lot of fun, because I had the opportunity to use technologies that I had little to do with, like sockets and asynchronous programming.

 

How it works

The library consists of a server part and a client part.

In order to start receiving push notifications, the client must send a registration message to the server.

During registration, the client opens a TCP connection to the server which, once registration is complete, is used by the server as the channel for sending push notifications.

The server library provides a method to trigger a push notification to a client, given a client ID and a message.

The client library allows user code to subscribe to an event that is triggered when a push notification has been received.

The Visual Studio solution, along with the library projects, provides two console applications for test purpose: one that acts as a server and the other that acts as a client.

To see the library in action in few clicks, you can do the following:

Build and execute TDP.TestServer.exe and TDP.TestClient.exe. You will see something similar:

Push Notifications - Test Server

 

Push Notifications - TestClient

Now follow this steps:

  • in the “Test client” console type the number that will identify your client, for example “1” and press Enter
  • in the “Test server” console type the client number you want to send the notification, in our example “1”, followed by the text message

After that, you will see that in the “Test client” console will appear the message from the server: your push notification has been sent!

Below you can see the result:

Push Notifications -Test Server - Step 2

 

Push Notifications - Test Client - Step 2

Just a note: by default the two applications are configured to work on the same address 127.0.0.1.

In a real world application you must configure the server to listen to a specific public IP address, and the client to connect to the same IP address.

To do this, just take a look the to app.config files.

 

Get the code

I published the source code on GitHUB at https://github.com/thedummyprogrammer/csharp-push-notification-lib.

If you want you can download and use it freely, and maybe give me a feedback.

In the next months I will try to improve this library and build something useful upon it…. stay tuned!!

C#, Sockets

Post navigation

Previous Post: Capture screen using C#
Next Post: Windows 10 search no more working!!

Related Posts

Is Environment.TickCount reliable? C#
C# async / await behind the scenes C#
A chat program built in C# with .NET socket library C#
Using The Dummy Programmer Chat Client C#
Telerik RadGrid’s pagination hangs ASP.NET
Working with C# async / await keywords (part 1 of 3) C#

Search

Related posts

  • A chat program built in C# with .NET socket library
  • Put an ASP.NET website under maintenance
  • System.Net.Sockets.SocketException (0x80004005): No such…
  • ASP.NET MVC5 Security Exception on Aruba provider

Categories

  • .NET 6 (1)
  • AJAX (1)
  • Android (2)
  • Apache (4)
  • ASP.NET (9)
  • ASP.NET MVC (3)
  • Avalonia UI (1)
  • BCP (1)
  • Bitlocker (2)
  • C# (14)
  • CentOS (4)
  • ClosedXML (1)
  • CLR (1)
  • DNS (1)
  • Encryption (3)
  • Excel (2)
  • FuelPHP (3)
  • Games (2)
  • Google Chrome (1)
  • GSuite (1)
  • HTML (1)
  • Imagick (2)
  • Javascript (1)
  • Kindle (1)
  • LAMP (3)
  • Linux (6)
  • MariaDB (2)
  • Mathematics (2)
  • MySql (4)
  • NPOI (1)
  • Office 365 (1)
  • Perl (1)
  • PHP (6)
  • Programming (1)
  • Remote desktop (1)
  • SFTP (2)
  • Sockets (3)
  • Sql Server (18)
  • Sql Server 2016 (14)
  • Sql Server 2019 (1)
  • SSL (2)
  • Task scheduler (1)
  • Telerik ASP.NET AJAX (2)
  • The Dummy Programmer Chat (2)
  • The Dummy Programmer Robot (6)
  • Threading (5)
  • Tools (1)
  • TPL (3)
  • TypeScript (3)
  • Ubuntu (4)
  • Virtualization software (3)
  • Visual Studio (1)
  • Visual Studio Code (2)
  • Web fonts (1)
  • Web programming (6)
  • Windows (12)
  • Windows 10 (15)
  • Windows Forms (1)
  • Windows Server (6)

Copyright © 2023 The Dummy Programmer | Privacy Policy | Terms of use |

Powered by PressBook Masonry Dark