Slack.NetStandard.AsyncEnumerable 1.0.3

.NET Standard 2.1
There is a newer version of this package available.
See the version list below for details.
dotnet add package Slack.NetStandard.AsyncEnumerable --version 1.0.3
NuGet\Install-Package Slack.NetStandard.AsyncEnumerable -Version 1.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Slack.NetStandard.AsyncEnumerable" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Slack.NetStandard.AsyncEnumerable --version 1.0.3
#r "nuget: Slack.NetStandard.AsyncEnumerable, 1.0.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Slack.NetStandard.AsyncEnumerable as a Cake Addin
#addin nuget:?package=Slack.NetStandard.AsyncEnumerable&version=1.0.3

// Install Slack.NetStandard.AsyncEnumerable as a Cake Tool
#tool nuget:?package=Slack.NetStandard.AsyncEnumerable&version=1.0.3


Additional support for Slack.NetStandard apps running Socket Mode

Creating a new client

var socketMode = new SocketModeClient(); //Can pass in your own ClientWebSocket instance
await socketMode.ConnectAsync(appToken); //Can use an existing SlackWebApiClient

Handling Envelopes

await foreach (var envelope in client.EnvelopeAsyncEnumerable(token))
    Console.WriteLine("processing envelope " + envelope.EnvelopeId);
    if (envelope.Payload is SlashCommand) //for example
      //your logic here

Hello and Disconnect

Hello and Disconnect messages are automatically handled by the SocketModeClient class.

Hello messages are sent "hello" in response

Disconnect closes the ClientWebSocket. If there is a valid SlackWebApiClient, or the class was able to create one from an app token, then the class will attempt to retrieve a new connection URL and re-connect the ClientWebSocket automatically - allowing the foreach to continue without interruption.

If you require different functionality in these cases, there is an OnHello and OnDisconnect method which can be overwritten in a subclass

Sample Application

The Socket Sample app within Slack.NetStandard is a working example of a console application that uses this library, just supply your own app token

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.0 4,401 1/18/2022
1.2.0 984 6/16/2021
1.2.0-beta2 191 6/8/2021
1.2.0-beta1 199 4/7/2021
1.1.3 519 3/2/2021
1.1.2 507 2/24/2021
1.1.1 301 2/22/2021
1.0.3 322 1/30/2021
1.0.2 307 1/30/2021
1.0.1 305 1/30/2021
1.0.0 299 1/30/2021

Fix StreamReader