Тёмный

Intro to SignalR in C# Part 1 - using Blazor, WPF, best practices, and more 

IAmTimCorey
Подписаться 421 тыс.
Просмотров 99 тыс.
50% 1

SignalR is an excellent way to connect two or more clients together for real-time communication. The best part is that this library is just a wrapper around web-standard technologies such as Web Sockets and Long-Polling. It just makes them easier to use. That means we can even use SignalR with other clients such as Java or JavaScript. In this video, we are going to learn how to set up SignalR and how to connect to it using web clients and desktop clients. Throughout the video, we will cover best practices, as well as how to use this in the real world.
Full Training Courses: IAmTimCorey.com
Source Code: leadmagnets.ap...
Mailing List: signup.iamtimc...

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 276   
@ManuelBasiri
@ManuelBasiri 2 года назад
I wish I had this tutorial a year ago when i was banging my head against the wall to make it work. Thank you so much Tim. You are a precious asset for the entire dev community.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@jingzheshan
@jingzheshan 2 года назад
I am looking forward to hearing some of your insight on SignalR security and authenticated user to user communication.
@IAmTimCorey
@IAmTimCorey 2 года назад
Good to know.
@hastifallah73
@hastifallah73 2 года назад
Waiting for part two ✌️ It would be great if you add signalr based by authentication
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@codefoxtrot
@codefoxtrot 2 года назад
+1 Upvoted on Tim's suggestion site
@kevinlyman1
@kevinlyman1 2 года назад
I agree. I tried this awhile ago using Azure B2C and ended up having to make the hub anonymous because I couldn't figure out how to get the token to signalR hub
@kevinlyman1
@kevinlyman1 2 года назад
@@IAmTimCorey I went there and registered and upvoted this suggestion. What do the Statuses mean? They're for the most part self explanatory, but what does "Watching' actually mean? I thought for a second you somehow knew what videos I was watching and had completed.
@tchpowdog
@tchpowdog 2 года назад
I've been using SignalR for the last 5 years or so in production apps. I'd like to add a best practice... If any of the data going back and forth between clients is to be stored in a database, DO NOT send this data to the Hub from the client. Send the data to a controller just like you would any other data. Store the data in your DB, then broadcast that data out using the Hub. You want your Hubs to just relay data. You do not want your hubs to be the consumption endpoints for data. This is because Hub connections are not always reliable. And Hub connections will close after a period of time they are unused. To use your hub throughout your backend app, you can inject an IHubContext into your services using DI and access the hub methods just like any other service.
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for sharing. I'm curious as to what circumstances led you to this conclusion. I agree that calling a controller is the better option, but in general, you can also use the SignalR connection without issue. For instance, that's what Blazor Server does for all of its data storage calls. Having a call timeout is something that shouldn't happen with an actively-used client. Plus with the auto-reconnect, it should jump right back up when you try to use it in a disconnected state.
@tchpowdog
@tchpowdog 2 года назад
@@IAmTimCorey there were several reasons I wanted to do this. 1. It made all of our application structure consistent (all POST data goes through controllers). 2. It fit our development process, we had a guy that worked on hubs and another guy that works with data storage, for example. 3. We had connection issues (although this was minor). 4. Authentication. Sending the posted data through our controllers meant we used our normal request authentication. Which is via JWT tokens passed in an HTTP header. 5. It allowed us to broadcast system generated data. For example, our chat had system messages, and using the HubContext, system chat messages were broadcasted the same way user chat messages were broadcasted.
@tchpowdog
@tchpowdog 2 года назад
@@IAmTimCorey I just highly suggest implementing it this way to save yourself in the future. It's just a lot cleaner and more flexible.
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for sharing.
@cbirchy87
@cbirchy87 2 года назад
Thanks Tim! I've half understood signalR and this has really helps concreate my understanded. Perfectly delivered, perfect pace. I really appocate your hard work in creating this free content. You have, for sure been a sigificate part of my Software Developer journey.
@IAmTimCorey
@IAmTimCorey 2 года назад
Great to hear!
@ThangNguyen-zi8bm
@ThangNguyen-zi8bm Год назад
This is one of the best SignalR explanation that I have run across online. Thanks Tim and please keep on teaching us all the cool stuffs...
@IAmTimCorey
@IAmTimCorey Год назад
You are welcome.
@Neo8019
@Neo8019 Год назад
Once again an excellent tutorial. Your tutorials can be long but for that they are detailed and very easy to follow. Some tend to talk way to fast and it can be a pain to follow along. Thank you. Now I can upgrade the multi user application I have created.
@IAmTimCorey
@IAmTimCorey Год назад
You are welcome.
@rafaelviniciusol
@rafaelviniciusol 2 года назад
Hi Tim! Are the Blazor and SignalR suitable for video streaming? I'm trying to make a project with this feature using Blazor. The Chat is similar with the one you are developing in the video, but I can't figure out how to do with the video without using the JS client
@tchpowdog
@tchpowdog 2 года назад
Short answer to this is no. You should use WebRTC for streaming video. There are frontend libraries for making this simpler to setup (although it's still not trivial). Remember, SignalR uses WebSockets, which means your server plays a middle-man role. Whereas, WebRTC connects two clients directly and streams data between the two (you can use SignalR to orchestrate the connection between the two clients but you won't use SignalR for streaming video/audio between the clients). I created a live meeting feature in one of my apps using WebRTC and it works really well. It's works identical to Zoom or Skype.
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for sharing @Andy!
@GPR7904
@GPR7904 Год назад
Great content like always. I'm stuck with something, Tim Corey is here to rescue. Thanks a ton Tim. Very much Appreciate your effort to make these wonderful informative videos.
@IAmTimCorey
@IAmTimCorey Год назад
I am glad it was helpful.
@sh2983
@sh2983 2 года назад
Hi Tim, thank you for the video. Could please make a video about SinalR pricing on Azure, and the best potential hosting environments for publishing an app using SignalR with about 100 concurrent users using SignalR connection. Thanks
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@kaceyezerioha495
@kaceyezerioha495 2 года назад
Need this too for a project currently in development
@WilliamMendoza-p8t
@WilliamMendoza-p8t Год назад
Hi Tim, great video. So anyone can connect to the hub if they have the URL? is there a way to secure it?
@IAmTimCorey
@IAmTimCorey Год назад
Yes, you can add authentication and authorization to a SignalR hub.
@archerscherer44
@archerscherer44 Год назад
Hey Tim! Excellent walkthrough! I am curious if there was a reason for using OnInitializedAsync Vs OnParameterSetAsync for the initial signalR connection?
@IAmTimCorey
@IAmTimCorey Год назад
"Any asynchronous operations, which require the component to re-render once they complete, should be placed in the OnInitializedAsync method." - from the documentation. Since the results of the call may put something on the page, which would cause the the component to re-render, we use the OnInitializedAsync method.
@mohsenhormozi4774
@mohsenhormozi4774 2 года назад
Hello Thank you for your good training Please place a video with two-step authentication in the ASP.NET Web API using Google Authenticator
@IAmTimCorey
@IAmTimCorey 2 года назад
That sounds like this suggestion: suggestions.iamtimcorey.com/Details/61d8c74f0761534f2283c321
@AlexAndVicki
@AlexAndVicki 11 месяцев назад
One of the best tutorials I have ever come across - Tim has a super pleasant voice and manner and the whole thing moves at exactly the right pace
@IAmTimCorey
@IAmTimCorey 11 месяцев назад
Thank you!
@kreliz2845
@kreliz2845 Год назад
Fantastic tutorial and very well explained. I'm just an amateur, self-taught coder who likes doing little projects here and there. Needed this for one and really wasn't looking forward to it... 😅 You made it an absolute walk in the park. Thank you. 🙏
@IAmTimCorey
@IAmTimCorey Год назад
You are welcome. I am glad it was helpful.
@dennisi6736
@dennisi6736 2 года назад
Tim thanks.Awesome lesson on SignalR. Question: Is it possible to send/receive other than string types i.e. complex data objects?
@IAmTimCorey
@IAmTimCorey 2 года назад
Yes it is. The next video will send ints, but you can send more complex types too.
@kevinlyman1
@kevinlyman1 2 года назад
I send objects through in a little app I'm playing with so yes it's possible.
@RobertSagoe
@RobertSagoe 2 года назад
you never disappoint 👌👌😉😉
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks!
@wladdovy4370
@wladdovy4370 2 года назад
Had the question on the interview "have you familiar with SignalR". Yeah, I have :) Thanks for video! I'll wait for part two.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@MrNewSports
@MrNewSports 2 года назад
Hi, I have an application in .NET 6 : Console Server WPF Client I want replace Websocket by SignalR but how to self hosting the server in a standard console (or wpf) application ?
@naturalwong6884
@naturalwong6884 2 года назад
Hi Tim, after completed the course of MongoDB, SignalR is next pazzle I need to build a more complex application. Thank you. I am looking for a tutorial of combining SignalR to receive data, store to MongoDB and revert to other client in real time.
@Printoiid
@Printoiid 2 года назад
Thank you for taking my earlier comment (11 months ago under your video "C# Async / Await - Make your app more responsive and faster with asynchronous programming") into consideration of explaining the logic before just writing code.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@ericouellet9848
@ericouellet9848 Год назад
Hi Tim, at the beginning of your video, around minute 2:30. You say "don't use core version, use not core versio which is more complete". But the core version package is bigger in size. How the core (onlky the basics) version could be bigger than the full version ?
@TutorialsMethod
@TutorialsMethod 2 года назад
Wao much awaited topic SignalR by Best Tutor. Thank you so much.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@krishnankuppaswamy7553
@krishnankuppaswamy7553 2 года назад
Loved learning new stuff here in this channel. Great efforts. Thanks, Tim 🙏
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@harshvijaysingh442
@harshvijaysingh442 2 года назад
Very well explained.
@IAmTimCorey
@IAmTimCorey 2 года назад
Thank you!
@williamliu8985
@williamliu8985 2 года назад
Yeah, long time no see, WPF... WPF need more love 😍
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@davidhouser9280
@davidhouser9280 Год назад
I'm very interested in creating a chat program with a dedicated server and making it cross platform and I'm very willing to take the time and learn so any ideas help links or courses I would love to hear
@lucianbumb6690
@lucianbumb6690 2 года назад
Thank you Tim for this tutorial. It's amazing how easy is 'this days' to create very powerfull applications. A big thanks to all people working to improve dotnet.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@brianwiggins6981
@brianwiggins6981 2 года назад
Thanks I always wanted see a video from you about how to use SignalR. Thanks for all your content.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@satyabratamohapatra3397
@satyabratamohapatra3397 2 года назад
Finally....SIGNALR💪. Thanks Tim.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@jsm33t
@jsm33t Год назад
so i am not the only one who hates Guids !!
@IAmTimCorey
@IAmTimCorey Год назад
Nope.
@cissemy
@cissemy 2 года назад
Thanks!
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@chechobecho2177
@chechobecho2177 2 года назад
Thank You Tim.. Finally SignalR Guide is here.. I have waited for this long time.
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@CookieMonsteeerrr
@CookieMonsteeerrr Год назад
And how to keep messages and show them back whenever for new client is connected?
@Raphael_dArc
@Raphael_dArc 2 года назад
Very clear and helpful for learning the basics of SignalR. It was also very nice to see it in action with the desktop app. One thing I noticed was the double message at 1:09:38, why did this happen?
@IAmTimCorey
@IAmTimCorey 2 года назад
I had double-subscribed to the event, which is why it came through twice.
@Huseyin-ty1qd
@Huseyin-ty1qd Месяц назад
It would be better if you teach it by using MVC or BlankSolution. A lot of differences here, make it complicated
@IAmTimCorey
@IAmTimCorey Месяц назад
There should be very few, if any, changes between Blazor Server and MVC. The underlying structure of both is ASP.NET Core.
@johncordell8661
@johncordell8661 2 года назад
Tim, thank you so much for putting content like this together. Question from an architecture standpoint. Would SignalR be a good solution within an API? Within our business, we have a web app, an API, and several dozen clients (console apps) running at customer sites. Right now, whenever we want something communicated to the client from the web, it is broadcasted to the API -> database where the client can then pick up requests. Would SignalR be a good solution from the API perspective to broadcast these requests directly to the client machines, or would you recommend a different approach.
@IAmTimCorey
@IAmTimCorey 2 года назад
That could be the right solution if you need that communication channel open for real-time events. Just note that your clients will need to be connected to the API all the time. That probably isn't a problem, but I just wanted to mention it.
@johncordell8661
@johncordell8661 2 года назад
@@IAmTimCorey thank you! I appreciate the response!
@michaelgrass
@michaelgrass Год назад
Why do u hate guids?
@IAmTimCorey
@IAmTimCorey Год назад
I don't. I just don't like using them incorrectly.
@Shazbot277
@Shazbot277 2 года назад
Error: "websocket connection to localhost failed....." on VS Community Edition v17.1.0 Solution: update to v17.1.6 and it fixed it. Thank Tim for the tutorial
@IAmTimCorey
@IAmTimCorey 2 года назад
Interesting. Thanks for sharing.
@jacopocaira5199
@jacopocaira5199 Год назад
Hello! i have this problem: i have two applications, the first one is in MAUI (Android/iOS) and the second one is in WPF. I need to be able to send in real time a string from the mobile app to the WPF one and i was wondering if SignalR can help me. I can adapt your solution to implement this idea? Thanks. I already attempted to use a "normal" webserver with the classic libraries, but i have to many problems while using it.
@IAmTimCorey
@IAmTimCorey Год назад
Directly? No, you can't do that. You need to go through a web server. The web server could host the SignalR server. The problem is that SignalR requires a constant connection. Just keep that in mind. It might be easier to send a message and process it right away on the other end.
@ButchCassidyAndSundanceKid
@ButchCassidyAndSundanceKid 2 года назад
Long awaited tutorial on SignalR.
@IAmTimCorey
@IAmTimCorey 2 года назад
I hope you enjoyed it.
@hexoter
@hexoter 2 года назад
Already using signalR for one year , but I am so excited to see your video
@IAmTimCorey
@IAmTimCorey 2 года назад
Great!
@vandeljasonstrypper6734
@vandeljasonstrypper6734 2 года назад
Common Tim Windows SDK App is out and you still using WPF It remove the sandbox just like what you ask for
@IAmTimCorey
@IAmTimCorey 2 года назад
I used WPF as an example app, but yes, I would probably use WPF instead of the Windows SDK App (what a horrible name, by the way). The reason why is because I can run my WPF app on a variety of Windows platforms. The Windows SDK App is restricted to Windows 10 build 1809 or higher or Windows 11. That's it. It also is more complex to set up. Microsoft keeps trying to make UWP-style apps, but that's not going to work. .NET MAUI will introduce cross-platform desktop apps shortly. That's a better option. The Uno Platform uses WPF to make fully cross-platform apps (Windows, Mac, Linux, iOS, Android, and the web). That's a much better option. At the end of the day, though, WPF is a simple yet modern platform for examples.
@mikemurphy1824
@mikemurphy1824 2 года назад
@IAmTimCorey I am trying to create the equivalent of the WPF client in a console app in regards to your SignalR videos but am stumbling over the dependency injection part in regards to SignalR. This is the error: "No constructor for type 'Microsoft.AspNetCore.SignalR.Client.HubConnection' can be instantiated using services from the service container and default values". Any help would be appreciated.
@don_Halapenjo
@don_Halapenjo 2 дня назад
Thank you Tim, a great video as always
@IAmTimCorey
@IAmTimCorey 15 часов назад
You are welcome.
@vaibhavgithub6094
@vaibhavgithub6094 Год назад
hey how do you make sure the authentication
@nicolasensale3357
@nicolasensale3357 Год назад
Thanks for all. I don't understand why when I start the server, it listens on port 5001, while instead it should always assume a random port in its range, or connect to the port indicated in the Launchsettings.json, which in this case should be 7181. Thanks if you go answer me.
@leonardobrogelli7527
@leonardobrogelli7527 Год назад
Hi Tim.I want to thank you again for your explanation. I created the project following your video step by step. If I execute the server and the client (even the WPF one) on the same pc they works correctly. If I launch the client app (after changing the URI from localhost to the to the IP server) the connection fail (I have disabled the firewall on both pc too). Can you help me. Thank yuo. Leonardo. 👍👍👍
@davidmtundi3400
@davidmtundi3400 Год назад
Hello Tim, thanks for this tutorial, am building a chat application using azureSignalR but the trouble comes when i want to go serverless so that i host the server on azure, how can i do that?
@IAmTimCorey
@IAmTimCorey Год назад
Azure has a SignalR service you can use.
@testerproject7873
@testerproject7873 2 года назад
Do you know how to implement login authentication like whatapps web using blazor server and SignalR ? if yes, can you make a tutorial video about this thank you :)
@abdulrahmanahmedmahmoud2622
@abdulrahmanahmedmahmoud2622 4 месяца назад
Not very useful I wish you started by giving a context first and discuss the theory before going into the code
@IAmTimCorey
@IAmTimCorey 4 месяца назад
That is literally the first couple of sentences in the video. I explain what SignalR is and how it works. Here is the opening paragraph of information: "SignalR is an excellent way to connect two or more clients together for real-time communication. The best part is that this library is just a wrapper around web-standard technologies such as Web Sockets and Long-Polling. It just makes them easier to use. That means we can even use SignalR with other clients such as Java or JavaScript. In this video, we are going to learn how to set up SignalR and how to connect to it using web clients and desktop clients. Throughout the video, we will cover best practices, as well as how to use this in the real world."
@AkarumeiAkashi
@AkarumeiAkashi Год назад
How to make two desktop wpf apps communicate over the global network? What we should change?
@IAmTimCorey
@IAmTimCorey Год назад
Either they need to be able to directly talk to each other or you need to have a web server act as the middle piece.
@alessandrovangeli8395
@alessandrovangeli8395 Год назад
Tim, can a server push signalR to clients when on the server something happens? I mean which tipe of project would you use for serverside? and the clients only listen to the server. thanks
@IAmTimCorey
@IAmTimCorey Год назад
Yes, when a connection is open, the server can talk to the client or the client can talk to the server.
@alexei6557
@alexei6557 Год назад
I can't create a WPF application ?!? Is there anything to install first on visual studio??
@IAmTimCorey
@IAmTimCorey Год назад
Yes, you need to install the Desktop project types if you want to use them (WPF is included in that set). You also need to be on Windows, since WPF relies on Windows dlls.
@F0YF0YT0S
@F0YF0YT0S Год назад
Hi Tim! Amazing tutorial as always. I am trying to create a simple app that utilizes two pages. On one I click on a and on the second the same appears. The app works fine on visual studio iis express and even when I publish and launch it from a custom folder on port 5000. When I try to host it so it is available on my lan using nginx my main page crashes the app. Any tips on how I could debug something like that? I am guessing it has to do with the configuration of nginx and how it deals with forwarding the signalr "messages" but I cant find a place to start. I know this is an old video but I could really appreciate your help. Thanks for the excellent content!
@AngusMcIntyre
@AngusMcIntyre Год назад
Covering far too many technologies in one go in afraid Tim. This would be overwhelming for junior engineers.
@IAmTimCorey
@IAmTimCorey Год назад
Taking on SignalR isn't something a junior engineer should be doing. There are a lot of prerequisites.
@michelchaghoury9629
@michelchaghoury9629 2 года назад
@IAmTimCorey i realljy like your virds and i learn a lot as an advanced spring boot / Java developer i want to make a transition to NET i do not want to skip steps and i do not need to start from scratch like understand oop concepts or web api or how to write good code but in the same time i want to learn stuff about NET and the best practicies what do you recommend me to do and where should i start
@IAmTimCorey
@IAmTimCorey 2 года назад
I would recommend the C# Mastercourse ( www.iamtimcorey.com/p/c-mastercourse ). I know you don't need to start from scratch, but it will cover topics that you might otherwise miss at the earlier spots. It will cover a large swath of C#, plus when you purchase the course, you get three bonus courses. One, the Year of Coding, coaches you through the main course and adds additional practice (and solutions), quarterly evaluations of your progress, and expert advice. Another, the .NET Versions course, walks you through the changes to .NET over the past 20 years and what the implications of those changes are. The third, .NET Legacy, gives you the legacy .NET Framework training that has been replaced with .NET 6 training. That way, if you are working on a .NET Framework project, you still have access to the content that covers it.
@uppercat7268
@uppercat7268 2 года назад
But we could use insead of "hubConnection is not null" in the if-statement, the IsConnected property?
@IAmTimCorey
@IAmTimCorey 2 года назад
No, because you can have a closed connection. That isn't the same thing as a null hubConnection.
@adnanvrazalica53
@adnanvrazalica53 2 месяца назад
Thank You. Explanation is great.
@IAmTimCorey
@IAmTimCorey 2 месяца назад
You are welcome!
@mcopy9p350
@mcopy9p350 2 года назад
Hi Tim, is there a way to wrap singalr inside REST endpoints. please share any link or video.
@allenbythesea
@allenbythesea Год назад
Great video on signal R, really interesting how good it is at moving messages around. I still hate WPF though.
@muralikrishnachowdarypolin5601
@muralikrishnachowdarypolin5601 2 года назад
Hi useful video I need some more information how to send messages to user to user like chat app with authentication i see so many tutorials but all are using clients.all this case messages send to all users
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@vandeljasonstrypper6734
@vandeljasonstrypper6734 2 года назад
The reason why his message send twice at the last moment is because he forgot to unsubscribe the send message event when the connection is lost And when he connect back the open connection subscribe it again
@IAmTimCorey
@IAmTimCorey 2 года назад
I missed that.
@apo135
@apo135 Год назад
Thanks for the video, really helpful for my goal ;) But, as a beginner in web / dev I'm wondering if it's possible to host signalR Hub in IIS without having to launch the index page ? Do the same blazor server app, but do not open any webpage to start the Hub. i don'k know if its comprehensive. Thanks for help all ;)
@IAmTimCorey
@IAmTimCorey Год назад
Yes, you can host a SignalR service without it being a web app. Azure even provides something like that.
@apo135
@apo135 Год назад
@@IAmTimCorey thanks ;) I succeed using topshelf, I created a windows service (thanks to another video from this channel)
@freddycastelblancomacias6082
@freddycastelblancomacias6082 2 года назад
Which alternatives exists to signalR ? Web sockets ?
@IAmTimCorey
@IAmTimCorey 2 года назад
SignalR is just a wrapper around Web Sockets to make them easier. Also, if a client does not support Web Sockets, SignalR will step down to another technology (server events) and then the final (long polling) instead of refusing the connection.
@simamba899
@simamba899 Год назад
Thanks Tim, I really like your best practices. I am new using SignalR and I try to make an interaction in real time between two players in a game, and including chat too, but a have a doutb: can I use two hubs (one for the chat and other for the interaction multiplayer) or just one to achieve the result?.
@IAmTimCorey
@IAmTimCorey Год назад
You could do either, but it is probably better to have one signal that transmits all of your data rather than two connections per client.
@simamba899
@simamba899 Год назад
Ok Tim, I will try it, thank you.
@ranielgarcia8685
@ranielgarcia8685 2 года назад
This is great! Thank you!
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome.
@dilipdas6305
@dilipdas6305 Год назад
Very good tutorial. Can you send image as well?
@IAmTimCorey
@IAmTimCorey Год назад
I would recommend not doing that. Use an API to send an image. You can send a message to get an image from the API through SignalR, though.
@VishalTrivediB
@VishalTrivediB Месяц назад
Great tutorial, thanks a lot Tim!
@IAmTimCorey
@IAmTimCorey Месяц назад
You are welcome.
@michaelharmon733
@michaelharmon733 2 года назад
Would this work with .Net 5 instead of 6?
@IAmTimCorey
@IAmTimCorey 2 года назад
Yes, you would just need to adjust to having a Startup.cs
@souravsingha3340
@souravsingha3340 2 года назад
If i want send massage specific client.example user from my database with identityframe work.
@IAmTimCorey
@IAmTimCorey 2 года назад
You can do that.
@souravsingha3340
@souravsingha3340 2 года назад
@@IAmTimCorey hope next part we seen that in action
@MrBurikella
@MrBurikella Год назад
I guess, on WPF project you should be subscribing to the messages in the constructor, not within Connect button handler
@IAmTimCorey
@IAmTimCorey Год назад
It is possible to do that, if that is what you are asking. In this demo, though, I wanted to demonstrate each of the actions so they were visible and obvious.
@MrBurikella
@MrBurikella Год назад
@@IAmTimCorey I mean, you've subscribed to all the connection state changes within constructor where you create connection. But message handler is added only within openConnection_click handler (arount 58:35) where you starting connection. That made me think that this message subscriptions kind of volatile and should be done every time we starting connection. But later on (around 1:09:42) you've connected second time and got message doubled, so I assume this subscription should be done only once within constructor together with connection state change subscriptions. Anyway, I think I've got what I needed while writing this. Thank you for you efforts to make good content publicly awailable on RU-vid!
@dima9917
@dima9917 Год назад
Please do a tutorial about signalR with azure
@IAmTimCorey
@IAmTimCorey Год назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@theredbaron28
@theredbaron28 2 года назад
will we have a signalR based on some UI framework like angular or react and have SignalR as a separate application.
@IAmTimCorey
@IAmTimCorey 2 года назад
The SignalR server is going to be C#. However, the client can be just about anything (JavaScript, C#, Java, etc.)
@theredbaron28
@theredbaron28 2 года назад
@@IAmTimCorey Yes sir you are right, I was simply saying it would have been nice to have an approach which is mostly used in industry, the one you have given is also classic and quite amazing. If possible have a small tutorial for Signal R with react or Angular 🙂
@3Play4PvP
@3Play4PvP 5 месяцев назад
You get from me a well deserved like button! Explained everything so beautiful nice. I really like the way you do it.
@IAmTimCorey
@IAmTimCorey 5 месяцев назад
Thank you!
@Steven23452
@Steven23452 2 года назад
Thanks Tim! Great Video! I used web sockets to rebroadcast messages from my syslog server back out to web clients .. after watching this I may spend some time moving that to SignalR!
@IAmTimCorey
@IAmTimCorey 2 года назад
I am glad it was so helpful.
@orhancanoguz4423
@orhancanoguz4423 2 года назад
Hello Mr Corey, how can we add ( html5 , css3,js pages created on other editors) pages to BLAZOR projects as front end pages or integrate in Visual studio ?
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@imadelberdaoui7363
@imadelberdaoui7363 2 года назад
Thank you Tim for SignalR video it was great, hope you do streaming or video communication user to user by SignalR.
@IAmTimCorey
@IAmTimCorey 2 года назад
Streaming video isn't really something that should be done via SignalR. There are other technologies out there that will do a better job.
@wegene2056
@wegene2056 2 года назад
Hi everyone. I want to add a video collaboration feature for my blazor project. Is signalR support? Or how can I use webrtc?
@IAmTimCorey
@IAmTimCorey 2 года назад
SignalR isn't really for streaming video. It could stream information around the video (when the play button was clicked, etc.), though.
@dmitriibessonov1964
@dmitriibessonov1964 2 года назад
Hi Tim, probably such a question was already asked, but can you explain why you have got a duplicate message just at the end of the video, when you tested the manual reconnect. I faced the same problem and want to get an explanation. Probably it is wpf issue, because it's not reproducible in the console app, but anyway
@IAmTimCorey
@IAmTimCorey 2 года назад
I forgot to unsubscribe from the SendMessage event when the server disconnected. When it reconnected, I subscribed for a second time. Thus, the two messages (one from each subscription to the event).
@pravintml1517
@pravintml1517 Год назад
Best ever SignalR explanation, Thanks for you time & Great efforts 🙏
@IAmTimCorey
@IAmTimCorey Год назад
You are welcome.
@ScorpreX_
@ScorpreX_ Год назад
Hi. There's a way to create a server in WPF somehow or it needs to be web application ?
@IAmTimCorey
@IAmTimCorey Год назад
You can use this with any application type, not just web applications. It does need to communicate over the web (or at least to a web server, which can be internal to a network).
@ScorpreX_
@ScorpreX_ Год назад
I thought the same, but the VS just couldn't find 'Hub' class. Am i missing something ? *edit: The solution for that is editing csproj file and change project sdk to "Microsoft.NET.Sdk.Web"
@empathetic24671
@empathetic24671 2 года назад
Thanks for the Signal R video Tim. Just wanted this from you🤯🤯🤯
@IAmTimCorey
@IAmTimCorey 2 года назад
My pleasure!
@codefoxtrot
@codefoxtrot 2 года назад
Hi @IAmTimCorey, great video-- the question I had while watching this-- how does this compare to using an API project? Any advice on when you should use an API vs SignalR?
@IAmTimCorey
@IAmTimCorey 2 года назад
SignalR is for maintaining a constant connection to a server. It is primarily for real-time data communication. While it can be used like an API as well, it isn't the ideal use case. An API is useful for when you need information or want to give information. You only open the connection long enough to perform the action and then you close it down again.
@MrEcted
@MrEcted 2 года назад
Great video as always, but Is WPF even still relevant outside of maintaining legacy applications?
@IAmTimCorey
@IAmTimCorey 2 года назад
Absolutely. It is the best desktop app choice Microsoft has. It deploys to the most Windows platforms and, if you use Uno, you can deploy it to Mac, Linux, iOS, Android, and the web.
@rikudouensof
@rikudouensof 2 года назад
Can i use signal R for video calls? must I use webRTC?
@IAmTimCorey
@IAmTimCorey 2 года назад
It would not be advisable. WebRTC is the better option.
@rikudouensof
@rikudouensof 2 года назад
Thanks,@@IAmTimCorey. it is a cross platform solution with core 6 API, UWP and MAUI at presentation layer. still adviceable ?
@TheCameltotem
@TheCameltotem 2 года назад
Done a few Azure Serverless SignalR and it's really smooth sailing and fun!
@IAmTimCorey
@IAmTimCorey 2 года назад
Great!
@bizneslupa3629
@bizneslupa3629 2 года назад
is Blazor better than JavasScript??? maybe no because its so complicate as Enity
@IAmTimCorey
@IAmTimCorey 2 года назад
Blazor is probably the simplest of the server-side languages. My recommendation would be to give it a shot. I have an intro to Blazor Server that might help.
@bizneslupa3629
@bizneslupa3629 2 года назад
@@IAmTimCorey can I use Blazor and JS in the same time at one project?
@IAmTimCorey
@IAmTimCorey 2 года назад
Yes you can.
@Mikarsoft
@Mikarsoft 2 года назад
Very nice tool and tutorial. Unfortunately You can't add its Server Side to a class Library and use it in a Clean Architecture.
@IAmTimCorey
@IAmTimCorey 2 года назад
If the structure of your architecture is such that you cannot use SignalR, you need to rethink your structure. Your structure should work for you, not work against you.
@andywalter7426
@andywalter7426 2 года назад
You mentioned in the video about doing a que. Can you show a sample of how a que would work. Because that can be helpful sometimes too where if there is a message but its not connected. Also, can you show how a person can do the following: there are 2 clients. It needs to send to one client that is not there. however, once that client gets connected, then send to that client. Is that possible?
@IAmTimCorey
@IAmTimCorey 2 года назад
I'll add that to my suggestion list. It is possible.
@guillermodanielmazzarigiov1768
@guillermodanielmazzarigiov1768 2 года назад
I really admire and appreciate your work! We're so you stand regarding blazor on vs code?
@IAmTimCorey
@IAmTimCorey 2 года назад
VSCode is a great editor. If you can use Visual Studio, you will have more help (Intellicode, quick actions and refactoring, etc.), but VSCode is light, fast, and does not get in the way.
@Rajeshsingh-ws5th
@Rajeshsingh-ws5th 2 года назад
One question is why can't we leverage the Azure SignalR and avoid load on our servers?
@IAmTimCorey
@IAmTimCorey 2 года назад
We can. I mentioned that in the video. We just don’t need to do it until the load justifies it.
@leonardobrogelli7527
@leonardobrogelli7527 Год назад
Thank you very much Tim!!!
@IAmTimCorey
@IAmTimCorey Год назад
You are welcome.
@broadshare
@broadshare 2 года назад
lol, I hate guids too. Great tutorial
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks!
@cissemy
@cissemy 2 года назад
Hi Tim, I would like to know if adding : builder.Services.AddResponseCompression(opts => { opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat( new[] { "application/octet-stream" }); }); will make my api or blazor wasm fast(client side) . Thanks
@therealrolanddeschain9253
@therealrolanddeschain9253 2 года назад
Thanks for the great videos! I'm wondering if you have a video about how to handle images (and other files) which are not stored in Database, but on a (private) cloud storage, like azure blob, S3 or similar. For example, do you provide only pre-signed URLs to the client, or should you handle the downloading and serving yourself? What are best practices here?
@IAmTimCorey
@IAmTimCorey 2 года назад
That sounds like this suggestion: suggestions.iamtimcorey.com/Details/6253bf2a0b6906f2d6876be7
@domengolob1358
@domengolob1358 2 года назад
This SignalR video is very nice :) I would love to see more of this content. Thanks for your work on this Tim.
@IAmTimCorey
@IAmTimCorey 2 года назад
Glad you enjoyed it!
@stephenadams6959
@stephenadams6959 2 года назад
Great video. Looking forward to more on the subject.
@IAmTimCorey
@IAmTimCorey 2 года назад
Thanks!
@andrewelmendorf2602
@andrewelmendorf2602 2 года назад
Glad to see signalr getting some love. I've been using it for 5-6 years now and it has come a long way!
@IAmTimCorey
@IAmTimCorey 2 года назад
Great to hear!
@S3Kglitches
@S3Kglitches 2 года назад
Thank you!!!! Note it is not Setup.cs but Startup.cs
@IAmTimCorey
@IAmTimCorey 2 года назад
You are welcome. And yep, just a slip of the tongue.
Далее
Brutally honest advice for new .NET Web Developers
7:19
Being Competent With Coding Is More Fun
11:13
Просмотров 83 тыс.
Dependency Injection in .NET Core (.NET 6)
1:00:32
Просмотров 191 тыс.
3 .NET "Best Practices" I Changed My Mind About
10:16
Просмотров 103 тыс.
SignalR Chat: Сервер и его клиенты
47:43
10 C# Libraries To Save You Time And Energy
33:59
Просмотров 207 тыс.