This is the perfect style of teaching. Provides loads of information, all of which is on-topic, never wanders down any rabbit holes bloating the content but also never glosses over anything crucial to the full understanding of the subject. Clearly has a very high level of experience and willing to take the time to share. Thank you so much!
Thanks mate! This was a long one but I wanted to cover everything, (as you say), that was relevant. Thanks so much for taking the time to feedback, much appreciated, Les
This is the second time I'm following this course. FIrst was about 2 years ago, and now I am refreshing my knowledge and cleaning up my old implementation of SIgnalR. I am actually using SignalR for a Unity game, to handle PvP in a card game. Really awesome tutorial, easy to follow but contains all the information you need! Top notch!!
This video was very very long but it worth watching every second of it. Thank you so much and god bless you! Thank you for taking so many hours from your schedule to teach us all.
I enjoyed the tutorial and learned a lot. Thank you for sharing your knowledge and for spending all the time needed to make this tutorial (research, live coding and speaking, video editing, etc). May the universe bless you Les!!
I am 1.5 hours into this, thank you so much for this. Very easy to listen to and making so much sense. After this I might even shout for Scotland in Rugby (Probably not being irish)
heeello Professor, the content of your course is simply sensational and saved me on a new journey (new job haha) thank you very much! I'm already your fan. Saalve Professor, o conteúdo do seu curso é simplesmente sensacional e me salvou numa nova jornada( novo emprego haha) muito obrigado! já sou seu fã.
Regarding letting you know how I received the long coding block of the WebSocketClient.html: I enjoyed following along and typing code after you. I believe this is the first html plus javascript document I have ever typed. I believe it will prove valuable experience for me. thank you.
This is an AWESOME tutorial. I love the way you explain each line of code after you manually type it in and the way you explain other concept that was needed in this tutorial like the "Async and Await". I think you would be a really effective and fantastic teacher in a classroom. No offence but you are much much better than my professor in college. Thanks again and please continue helping other coders by your tutorials. - Your follower here in Canada.
I really enjoy your tutorial. You deserve more audience sir. I'm not skipping Ads, and I leave a like and subscribe just in return for this awesome tutorial. Thank you so much and cant wait for your next videos.
Es el video mas educativo que encontré hasta ahora, muchísimas gracias por explicar, cuando estas empezando necesitas explicaciones lo mas profundas y complejas posibles, reitero, te lo super agradezco.
First thanks for sharing such a valuable content for free, next thanks for spending more than 3 hours of your valuable time and share all your knowledge with everyone. I never saw any paid content which explains clearly like you explained here. Thanks again.
He doesn't know but I'll tell you. You can make it any size you'd like. Let's say you make it byte[2] instead of byte[1024 * 4] but when the server receives "Zor Max" only "Zo" is registered 'cause of byte[2]. If I make it byte[3] the only "Zor" is registered. If I make it byte[[5] then only "Zor M" is registered. (5 including the space) Get it?
In the websocket implementation, I changed the Action delegate parameter of the ReceiveMessage method with a Func so I can control when to stop receiving in the while instead of just having while(socket.Status.Open), Do you think that my approach makes sense? edit: Great video by the way, really appreciated it
You have showed how to communicate with chat hub. But what if I want to reach to the client from my service layer? For example if a user submit a request, after a few seconds I want to reach to him. In the chat hub there is no exposed method that allows to achieve that?
Feels like all of the boilerplating that you wrote/have to write for Websockets is already present in SignalR. That alone seems like a major benefit, at the very least for small projects/prototyping.
Great work. Really good explained. How could I now push something from the Server. So if I want to keep the connections open, do something in a thread. After my work is done. send something to the client. I did a singelton of the MiddleWare class, but that does not seam clean. Cheers
wow such a great vid! thank you so much! I have enjoyed every single second of the video and learnt a lot! one humble request, could you make another vid when you free and explain how authentication, security and http session management work in a websocket or singlr web application? say login to a http page, and then do real work with all of the login credentials and session on another websocket server.
Do you find SignalR useful when we speak about websocket-only integration between asp and native application like ios (swift) or android (kotlin/java)? I would not want to involve some sort of dependency of officially unsupported client-side signalR libraries for swift and java. And which more important would like to save some freedom to migrate websocket backend from asp to other platform, for example written in Golnag. For now it seems that client just need to support a little bit specific SignalR protocol json format , but maybe it's possible to customize this format. Or a better choice to give up with SignalR at all and use pure webSocket infrastructure like you provide in you lesson?
i am having an issue while connocting @45:08 ..my error shows return str.toString() .replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(//g, '>'); cannot read property toString.. can anypne help??
make sure your Program.cs is like this (because in the video he showed only Startup.cs content) : using Microsoft.AspNetCore; namespace WebSocketServer { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup(); }
The intro track makes me think of a slowed down version of "Geography 1" by Front 242. I prefer the sped-up version of you writing code to a cut & paste approach.
Hey Mortizul ! I'll check out Front 242 - they look right up my street! Yeah I think a musical interlude can work well if the music is ok. Also I quite like showing the mistakes I make, it makes it more real than just copy/pasting correct code. Appreciate the feedback, Cheers, Les
@@binarythistle I've finally been given the go ahead to start in on this project in work so I started looking at your video. I'm about an hour in, and I'm starting to panic because nothing is making sense as regards my specific requirements! Do you discuss how to create a WebSocket client in C# in this video? Specifically using .NET framework? I am not building the server, I am just connecting to an existing websocket server which provides information from a telecoms provider.
GetAllSockets() returns a dictionary so would it not be more efficient to do: var sock = _manager.GetAllSockets()[guidOutput.ToString()]; if (sock != null) {...}
So is it possible for me to develop the websocket code on a seperate server and allow multiple wordpress websites trigger it to give me real time comments, posts and functionality on wordpress sites... using same app to many sites? if so please let me know! :) awesome video - but above my head as i only tamper with html and css for most part.
WebSocket connection to 'ws://localhost:5000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED iam at 45.51 and i get this what is the cause of this error ?thanks for the video
Hello @Huynh Thanh Thuan (sorry no diacritical marks.) Perhaps you've move passed this, but it had me stuck for awhile. I confess I got a little depressed with getting nowhere with a solution, as I am too new to every one of these intricacies to make much headway when things don't work right away. I researched and then distracted myself with other activities, and then came back to do more research, getting stalled again and again. I couldn't figure out WHY my code wasn't working and Les' code was. So, I eventually decided to just go on with watching the tutorial to see what I could pick up, even though my own code was stalled. And what do you know, the first thing that happens after I resume the video is that Les comments, "I should have gotten an error." Damn! All I had to do was be patient and positive! Life lessons, I suppose. So I hope you kept going nine months ago (from the time I am leaving my comment) and figured this out for yourself, or perhaps moved on to other prosperous activities; but in case you just stopped short, then be encouraged to keep watching. Bless you fellow coder, and bless you and thank you, Les.
hello les I really need your help here...can you provide how to do this exact same things in asp .net mvc web api.. this is for .net core and i am doing my project in web api.. if you provide me how to do the signalR in web api it would be a big help for me ..
make sure your Program.cs is like this: using Microsoft.AspNetCore; namespace WebSocketServer { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup(); }
Greetings from Germany XD Excellent video ... very generous. God bless you. I learnt a lot. I am working on a realtime app for RIM embedded system, would be using these leant skills for the project
nice code over there excepting JS wich seems to be copied from Microsoft docs example. Anyway I really appreciate your work. I saw already many tutorials of websocket in diffrent programming languages and readed many docs about it but your video is just best like all in one.
I don't mind watching speed up coding, I feel like is better than cut and paste. However, after you are done with one section stop for a few seconds so we can pause. Also at the very end you cut to the next shot too quick. Edit: NVM u went over the code afterwards.
Thanks a lot! Can i ask question? I wanna create video conference on web rtc. What do you think which technology i have choose? (websockets or signalr) thank you in advance!
Simply no one does all this for free, thank you for your work
No worries, it's my pleasure!
would it be ok to ask you: if you could share the source code ?
This is the perfect style of teaching. Provides loads of information, all of which is on-topic, never wanders down any rabbit holes bloating the content but also never glosses over anything crucial to the full understanding of the subject. Clearly has a very high level of experience and willing to take the time to share. Thank you so much!
Thanks mate! This was a long one but I wanted to cover everything, (as you say), that was relevant. Thanks so much for taking the time to feedback, much appreciated, Les
Lmao I loved it too. Your comment is just right on bro.
This is the second time I'm following this course. FIrst was about 2 years ago, and now I am refreshing my knowledge and cleaning up my old implementation of SIgnalR.
I am actually using SignalR for a Unity game, to handle PvP in a card game.
Really awesome tutorial, easy to follow but contains all the information you need! Top notch!!
same came back to this after 2 plus years! amazing tutorial.
How does this not have more views? This is better than pay courses.
The best is it contains more than I expected.
Huge respect, usually I don't comment on any tutorials, but the knowledge of the topic and details is astonishing! Well done lad!
I had watched few tutorials about making websocket application in .NET Core but I can't get how it works under until I found your video. Great job!
This video was very very long but it worth watching every second of it. Thank you so much and god bless you! Thank you for taking so many hours from your schedule to teach us all.
You're a legend man. Thanks for the video. I'm getting into Websockets and SignalR right now and this helps a lot.
I enjoyed the tutorial and learned a lot. Thank you for sharing your knowledge and for spending all the time needed to make this tutorial (research, live coding and speaking, video editing, etc).
May the universe bless you Les!!
I am 1.5 hours into this, thank you so much for this. Very easy to listen to and making so much sense. After this I might even shout for Scotland in Rugby (Probably not being irish)
Love that you didn’t just copy an paste code. Thank you for the tutorial!
heeello Professor, the content of your course is simply sensational and saved me on a new journey (new job haha) thank you very much! I'm already your fan.
Saalve Professor, o conteúdo do seu curso é simplesmente sensacional e me salvou numa nova jornada( novo emprego haha) muito obrigado! já sou seu fã.
my english listening level is very bad. but i am listening this man,even if i don't understand what he says :D
You rock man! I'm not English speaker but I get your explanations!
A long video but worth every minute of my time! Thanks for this enlightening video!!
Regarding letting you know how I received the long coding block of the WebSocketClient.html: I enjoyed following along and typing code after you. I believe this is the first html plus javascript document I have ever typed. I believe it will prove valuable experience for me. thank you.
That's a fantastic job, Jackson. Congrats!!!
This is an AWESOME tutorial. I love the way you explain each line of code after you manually type it in and the way you explain other concept that was needed in this tutorial like the "Async and Await". I think you would be a really effective and fantastic teacher in a classroom. No offence but you are much much better than my professor in college. Thanks again and please continue helping other coders by your tutorials. - Your follower here in Canada.
Great content. Loved the DI and the configuration part for the middleware.
You always say 60mins 😂
Nd u end up with 3 hours
Thank you so much 🙏🏽🌹
I really enjoy your tutorial. You deserve more audience sir. I'm not skipping Ads, and I leave a like and subscribe just in return for this awesome tutorial. Thank you so much and cant wait for your next videos.
Material is succinct and delivers on multiple layers. You're a true developer! Thanks for sharing your journey 😃
That was fantastic tutorial! Thanks for that. Keep up with the good work!
Thank You Les, your teaching is incredible! Best Regards from Brazil.. Obrigado!
Es el video mas educativo que encontré hasta ahora, muchísimas gracias por explicar, cuando estas empezando necesitas explicaciones lo mas profundas y complejas posibles, reitero, te lo super agradezco.
First thanks for sharing such a valuable content for free, next thanks for spending more than 3 hours of your valuable time and share all your knowledge with everyone. I never saw any paid content which explains clearly like you explained here. Thanks again.
At 1:15:10 - Why did you give the size of the byte array as 4096? Why 1024 * 4
He doesn't know but I'll tell you. You can make it any size you'd like.
Let's say you make it byte[2] instead of byte[1024 * 4] but when the server receives "Zor Max" only "Zo" is registered 'cause of byte[2].
If I make it byte[3] the only "Zor" is registered.
If I make it byte[[5] then only "Zor M" is registered. (5 including the space)
Get it?
Great video Les. Love the style, love the info. Please keep up the good work, it is very much appreciated!!
Thanks Nick, best wishes from the "land down under"
In the websocket implementation, I changed the Action delegate parameter of the ReceiveMessage method with a Func so I can control when to stop receiving in the while instead of just having while(socket.Status.Open),
Do you think that my approach makes sense?
edit: Great video by the way, really appreciated it
I really needed this! Thanks for sharing Les. You Are Appreciated!!
Incredible material. I really enjoyed every piece of the infomation you presented. Thank you!
Greeting from Scotland! 😁
Really good tutorial and great job, thanks! 👍👏
Fantastic video. It's exactly what I was looking for. Watched it start to finish and I learned tons. Thanks so much dude! :)
HI Jackson, thanks for your video. do u have article or video about how to scale out the websockets.
Great vids....Wish I had come by them even sooner...really enjoying your content.
3:07:00 or so there is a SignalR interface, I did a SignalR cdn script import, and SignalR.ConnectionState.Disconnected all the states are there.
Thank you for your work!
Thanks mate!
A very prefect tutorial course.
Awesome work.
Thank you very much.
In a nutshell, why you should use SignalR over Websockets.
Websockets part : 2h30min
SignalR part : 50 min.
This
Great Content man. Everything seems clear now.
You have showed how to communicate with chat hub. But what if I want to reach to the client from my service layer? For example if a user submit a request, after a few seconds I want to reach to him. In the chat hub there is no exposed method that allows to achieve that?
This is awesome course man. Thanks!
Realy thank's for your job you help me a lot ! big up from Africa
Hey Les! One question. I couldn't figure out in WebSocket part, how the method "InvokeAsync" gets triggered. There is no reference to it.
So much knowledge in 3h.thank you...
Feels like all of the boilerplating that you wrote/have to write for Websockets is already present in SignalR.
That alone seems like a major benefit, at the very least for small projects/prototyping.
Awesome stuff!! Thank you very much. Loved it. Keep up your work.
what an amazing tutorial. Many thanks Les!
Quiet good saved me a lot of time and effort.
2:26:04 - actually you've already had access to the connID there is no need to search it
I am proud that I am a student of yours.... Where you were for the last 8 years...? :)
2:29:19 Start of SignalR
Can you provide the link to the background music ?
Great work. Really good explained. How could I now push something from the Server. So if I want to keep the connections open, do something in a thread. After my work is done. send something to the client.
I did a singelton of the MiddleWare class, but that does not seam clean.
Cheers
wow such a great vid! thank you so much! I have enjoyed every single second of the video and learnt a lot! one humble request, could you make another vid when you free and explain how authentication, security and http session management work in a websocket or singlr web application? say login to a http page, and then do real work with all of the login credentials and session on another websocket server.
I actually really like that you did this in straight javascript because I think it's a lot easier to see what's going on.
Do you find SignalR useful when we speak about websocket-only integration between asp and native application like ios (swift) or android (kotlin/java)?
I would not want to involve some sort of dependency of officially unsupported client-side signalR libraries for swift and java. And which more important would like to save some freedom to migrate websocket backend from asp to other platform, for example written in Golnag.
For now it seems that client just need to support a little bit specific SignalR protocol json format , but maybe it's possible to customize this format. Or a better choice to give up with SignalR at all and use pure webSocket infrastructure like you provide in you lesson?
Nice intro, i see you are a man of culture as well.
Well this is two years old now and Microsoft has answered that question for us. It is SignalR as that is what is being used with Blazor
i am having an issue while connocting @45:08 ..my error shows
return str.toString()
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(//g, '>');
cannot read property toString..
can anypne help??
make sure your Program.cs is like this (because in the video he showed only Startup.cs content) :
using Microsoft.AspNetCore;
namespace WebSocketServer
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup();
}
}
The intro track makes me think of a slowed down version of "Geography 1" by Front 242. I prefer the sped-up version of you writing code to a cut & paste approach.
Hey Mortizul ! I'll check out Front 242 - they look right up my street! Yeah I think a musical interlude can work well if the music is ok. Also I quite like showing the mistakes I make, it makes it more real than just copy/pasting correct code. Appreciate the feedback, Cheers, Les
Thanks for this amazin tutorial Les, you rellay helped us out here ;-)
Happy to help!
Please create a video on webRTC with signalR directly use in asp core without node+express+socketIo
Thanks so much Les
My pleasure hope it was useful!
@@binarythistle I've finally been given the go ahead to start in on this project in work so I started looking at your video. I'm about an hour in, and I'm starting to panic because nothing is making sense as regards my specific requirements! Do you discuss how to create a WebSocket client in C# in this video? Specifically using .NET framework? I am not building the server, I am just connecting to an existing websocket server which provides information from a telecoms provider.
GetAllSockets() returns a dictionary so would it not be more efficient to do:
var sock = _manager.GetAllSockets()[guidOutput.ToString()];
if (sock != null)
{...}
I have no idea what any of this is. Came here from an Excel LBO modeling video but this was very interesting.
It was so goooood! But I wish you save the chat in db
Thanks a lot. The tutorial is amazing.
So is it possible for me to develop the websocket code on a seperate server and allow multiple wordpress websites trigger it to give me real time comments, posts and functionality on wordpress sites... using same app to many sites? if so please let me know! :) awesome video - but above my head as i only tamper with html and css for most part.
I would use SignalR. It saves lots lots of work of managing all the connections, when we need to consider of multiple browsers
Thank you! you helped me tremendously
im on minutes 55 now on websocket. i am never this invested in a youtube tutorial before 🤣
Thanks Les Jackson youre amazing
Great video. One question, is it possible to create clients for the web socket that are not in a browser? Using .net.
Yes you can. There is a client for .NET which you can find in the docs.
WebSocket connection to 'ws://localhost:5000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED iam at 45.51 and i get this what is the cause of this error ?thanks for the video
Great tutorial, thank you !!
gotta love the sound transitions
GONNA BUY YOUR BOOK!!
Thanks again, Mr. Jackson.
Ps: 'Les' means 'Lesson' in dutch :)
intro music is wonderfulll :D
Great tutor.. basics clearly explained. Can you explain signal r with a blazor server app ?
Thank you Les!
very useful
thank you for your work
WebSocket is close with 1006 code and no reason, can you help me resolve ?
Hello @Huynh Thanh Thuan (sorry no diacritical marks.) Perhaps you've move passed this, but it had me stuck for awhile. I confess I got a little depressed with getting nowhere with a solution, as I am too new to every one of these intricacies to make much headway when things don't work right away. I researched and then distracted myself with other activities, and then came back to do more research, getting stalled again and again. I couldn't figure out WHY my code wasn't working and Les' code was. So, I eventually decided to just go on with watching the tutorial to see what I could pick up, even though my own code was stalled. And what do you know, the first thing that happens after I resume the video is that Les comments, "I should have gotten an error." Damn! All I had to do was be patient and positive! Life lessons, I suppose. So I hope you kept going nine months ago (from the time I am leaving my comment) and figured this out for yourself, or perhaps moved on to other prosperous activities; but in case you just stopped short, then be encouraged to keep watching. Bless you fellow coder, and bless you and thank you, Les.
hello les I really need your help here...can you provide how to do this exact same things in asp .net mvc web api.. this is for .net core and i am doing my project in web api.. if you provide me how to do the signalR in web api it would be a big help for me ..
in javascript, "htmlEscape(str)" str is null, so str.toString gives me error.
make sure your Program.cs is like this:
using Microsoft.AspNetCore;
namespace WebSocketServer
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup();
}
}
Thanks as always
Can we use SignalR on server side(.net core web api server) and on client side just normal JavaScript websocket api?
I think you can create your own client using Hubs protocol from SignalR.
Really helpful.
Greetings from Germany XD Excellent video ... very generous. God bless you. I learnt a lot.
I am working on a realtime app for RIM embedded system, would be using these leant skills for the project
nice code over there excepting JS wich seems to be copied from Microsoft docs example. Anyway I really appreciate your work. I saw already many tutorials of websocket in diffrent programming languages and readed many docs about it but your video is just best like all in one.
I don't mind watching speed up coding, I feel like is better than cut and paste. However, after you are done with one section stop for a few seconds so we can pause. Also at the very end you cut to the next shot too quick. Edit: NVM u went over the code afterwards.
Bro, Thanks to share.
No worries, my pleasure!
Great video Sir
Thank you for your work! متشکرم
My pleasure Amir!
Very Helpful...Thank you very much..(Y)
Thanks a lot! Can i ask question? I wanna create video conference on web rtc. What do you think which technology i have choose? (websockets or signalr) thank you in advance!
Video from before 2020. I almost cant watch it thinking about all the pain between now and then
Thank You.
Awesome!