How To Build A Chat And Data Feed With WebSockets In Golang?

Поделиться
HTML-код
  • Опубликовано: 5 сен 2024
  • ► Join my Discord community for free education 👉 / discord
    ► Become a Patreon for more exclusive content 👉 / anthonygg_
    ► Buy my a coffee 👉 donate.stripe.....
    ► Follow me on Twitter 👉 / anthdm
    ► Follow me on GitHub 👉 github.com/anthdm
    In this Golang tutorial, I'm going to teach you how to build a simple chat application and data feed by building our own custom WebSockets server in Golang.
    #golang

Комментарии • 82

  • @anthonygg_
    @anthonygg_  Год назад +3

    ► Join my Discord community for free education 👉 discord.com/invite/bDy8t4b3Rz
    ► Become a Patreon for exclusive tutorials👉 www.patreon.com/anthonygg_
    ► Buy me a coffee 👉 donate.stripe.com/aEU2a6ayH2uCa3u4gg
    Thanks for watching

  • @Browsinghard
    @Browsinghard 6 месяцев назад +11

    Love that you go in showing the concepts without a bunch of libraries. Keep it simple and then abstract later if needed!

  • @Chips4Real1
    @Chips4Real1 Год назад +40

    this channel is hidden gold

  • @nefrace
    @nefrace Год назад +16

    You've just single handedly motivated me to learn Golang more than I usually did.
    This series of tutorials are awesome and I really appreciate this simplicity and minimalism of using standard libraries as much as possible.

    • @anthonygg_
      @anthonygg_  Год назад +2

      Happy I could motivate you 🎉

    • @viral-vector
      @viral-vector 6 месяцев назад

      😅😅😅lllleere2le

  • @dranon0o
    @dranon0o Год назад +4

    One thing I love about your videos is that you're going right to the point

    • @anthonygg_
      @anthonygg_  Год назад +2

      Life is short. No time to waste. Margaritas are waiting.

  • @manofqwerty
    @manofqwerty Год назад +2

    I have never looked into sockets and always thought they would be really complicated - thanks for this!

  • @VitaminessBlues
    @VitaminessBlues Год назад +3

    Like your style! Speed of speech and simplicity of explanation make it lit! Awesome!

  • @jacobusburger
    @jacobusburger Год назад +1

    I don’t know Go but I don’t need to. I learned so much from this video, thank you!

  • @sheikhAbdelrahman
    @sheikhAbdelrahman 28 дней назад +1

    Great tutorial video Anthony :)
    I like your accent a lot .. where are you from mate :)?

  • @IkraamDev
    @IkraamDev Год назад +1

    This channel is a gold mine.

  • @sweetphilly2
    @sweetphilly2 Год назад +1

    Great tutorial. A bit fast for my liking but it gave me good insights. Would've like to see a thread-safe implementation of the connection map, but I'll research that on my own

  • @crisgomez3282
    @crisgomez3282 Год назад +1

    oh thank you very much for making this tutorial, I had been looking for a good one, and you explain it quite well, and the best thing taught by Jhony sins

    • @anthonygg_
      @anthonygg_  Год назад +5

      Im also a fireman, plumber, and police office. Hide your girls.

  • @gadgetboyplaysmc
    @gadgetboyplaysmc 10 месяцев назад +1

    I have subscribed. You make it look easy. I have no idea how it works because I come from TypeScript. The function syntax sort of is a little new to me. The map, create whatever is also all new to me. But will be studying this code. Thanks for this. Hope you make more useful content! Thanks!

  • @tpotjj2979
    @tpotjj2979 Год назад +2

    Netflix for Software Developers, proven content creator!

  • @matthewthomas7645
    @matthewthomas7645 Год назад +1

    All great videos and not just that your a very funny chap, which makes the videos more relatible then someone just saying do this and that. Keep it up!

  • @ribarmilos
    @ribarmilos Год назад +1

    You have a new subscriber. Thanks Anthony!

  • @I_SEE_RED
    @I_SEE_RED 6 месяцев назад +1

    Thank you Anthony

    • @anthonygg_
      @anthonygg_  6 месяцев назад

      Thank you for being here

  • @dtuckrez
    @dtuckrez Год назад +1

    So helpful, thank you. 10/10

  • @raspberrysans5880
    @raspberrysans5880 Год назад

    but REALLY you SHOULD get the Nobel Simplification Prize bc you explained so well! Thank you, sir :)

  • @tokintmash
    @tokintmash 23 дня назад

    "böfr a'la sörverr" :D
    Great tutorial! I got write errors in the terminal when sending chat messages but these went away when I changed the port number. Was the port in use perhaps? Chat itself was functioning

  • @lebonbauma4167
    @lebonbauma4167 Год назад +1

    Amazing Stuff, Let's Go😎

  • @sovrinfo
    @sovrinfo Год назад +1

    Great video. Big Thanks!

  • @holgerm420
    @holgerm420 Год назад +2

    appreciate the zoom

  • @tokintmash
    @tokintmash 18 дней назад

    So, do I understand correctly that if I want to have a list of online users, then, rather than having a database table for those, it makes more sense to use a feed and broadcast the list there? As DB is for stuff that needs to be accessed later and if I don't have to log who has been online, then I don't need to put it in the database?

  • @LeetCodeUzbekistan
    @LeetCodeUzbekistan 3 месяца назад +1

    Bro you doing great

  • @tanko.reactions176
    @tanko.reactions176 Год назад

    there is a subtle bug, will take you hours to find it if you dont know whats happening underneath..
    basically, you are not guaranteed that your messages come unchopped!
    just implement a message terminator and read until you encounter a message terminator, which may require 5 reads, for example and once you have all the fragments of 1 message, you can process the message! otherwise its incomplete, probably not a big issue in a chat app, but very problematic when you are transferring structured data!

  • @AssyrianMuscle
    @AssyrianMuscle Год назад +2

    Brother can we get some architecture style vids? Or your opinions on them (hex, clean) or even ddd in golang? Maybe some design patterns that you think work well specifically with go?

    • @anthonygg_
      @anthonygg_  Год назад +2

      I will make one next week.

    • @AssyrianMuscle
      @AssyrianMuscle Год назад

      Honestly man you’re killing it, will be looking into contributing to your patreon this week!

  • @zhiweizhang-ih8zv
    @zhiweizhang-ih8zv Год назад +1

    thanks for the sharing

  • @kirindev
    @kirindev 3 месяца назад

    thank you.

  • @puttenicole
    @puttenicole Год назад +1

    Good stuff!

  • @michelemendel
    @michelemendel Год назад +1

    Again, very nice. Could the actor model (e.g. your Hollywood library) be used with websockets, or would it be unnecessary?

    • @anthonygg_
      @anthonygg_  Год назад +1

      Tonights stream covers this

  • @jsmx2673
    @jsmx2673 Год назад +1

    hello. this video is very good. how to create tcp socket chat client / server custom protocol

  • @90n1n74
    @90n1n74 Год назад +1

    Fantastic

  • @khoantranquang9277
    @khoantranquang9277 17 дней назад

    When connecting to a Socket, do I need to download any libraries?

  • @TheNickeHallgren
    @TheNickeHallgren Год назад +1

    Excellent tutorial! How do I remove clients that have disconnected, as now they are still on the conns map after disconnecting and the next broadcast gives an error for use of closed network connection?

    • @TheNickeHallgren
      @TheNickeHallgren Год назад +2

      I answer my own question, in fuction readLoop add delete(s.conns, ws) before break in if err == io.EOF to delete disconnected clients :)

  • @Tomas-te8wq
    @Tomas-te8wq 4 месяца назад

    respect

  • @gavrilenko2012
    @gavrilenko2012 Месяц назад

    Hello, I have a question. My server response 200, and seems all working fine, however in my browser I got 403 error...
    Any ideas how to fix it?

  • @alexandrecolautoneto7374
    @alexandrecolautoneto7374 4 месяца назад

    GG, I appriciate when you care about the blind homies. 🤓

  • @Saphintosh
    @Saphintosh 3 месяца назад

    Oh yeah, a golang websockets online class with johnny sins.

  • @abdullahbiyik1342
    @abdullahbiyik1342 Год назад +1

    He can easily make joke about high-end industry topics, as he has full control over the topics.

  • @sadflihsaklhflsadh
    @sadflihsaklhflsadh Месяц назад

    LOVE U

  • @celsopatiri2846
    @celsopatiri2846 Год назад

    Awesome stuff

  • @Cryoxia
    @Cryoxia Год назад

    Could anyone tell me where you get info on the errors returned by library methods? In the video, he talks about Conn.Write returning EOF, but I can't seem to find the info on the golang site

  • @sumonsutrodhar1495
    @sumonsutrodhar1495 Год назад

    Coould you please introduce tuntap packet reception and transmission for user space programs? TIA

  • @Allr3dc
    @Allr3dc 10 месяцев назад

    This video made me feel old 😂

  • @yirgacc3931
    @yirgacc3931 Год назад

    very awesome tutorial GG, but i may have some problems with the websocket Write() method. Since I do it step by step with your video(just SAME as your code), i can't figure out that why the server can't write to the browser, no matter the first /ws or the later /orderbookfeed, it turns out the console don't print the message from the server after setting up the onmessage method, what's wrong?🥺

  • @jhem
    @jhem Год назад

    You can't fool me Johnny Sins, you typed something else at 2:06

  • @sorooshmoghimi5494
    @sorooshmoghimi5494 Год назад

    awesome

  • @brendanortiz1742
    @brendanortiz1742 6 месяцев назад

    your furiously fast typing + all the mistakes == me every time i know what i am actually trying to do my heart when i'm programming and just trying to do it fast af lol. When i don't know what i'm doing by heart i make 0 mistakes

  • @CodeOnBlocks
    @CodeOnBlocks 6 месяцев назад

    lmao the 1337 😂

  • @zswang-iq3rl
    @zswang-iq3rl 2 месяца назад

    蟹蟹

  • @arielsashcov99
    @arielsashcov99 Год назад +1

    Didn't know Johnny Sins is into coding

    • @anthonygg_
      @anthonygg_  Год назад +3

      Im also an astronaut, fireman, and plumber. Hide your girls everyone.

  • @radheshgupta6029
    @radheshgupta6029 17 дней назад

    The package used by anthony is deprecated as of august 2024

  • @randomness3231
    @randomness3231 Год назад +1

    my Holy Grail port: 81

  • @gokul1630
    @gokul1630 Год назад +1

    I was searching for silver & found gold

    • @anthonygg_
      @anthonygg_  Год назад +1

      Spread the word my man ❤️

  • @parthokr
    @parthokr Год назад

    ah huh you could have deleted the connection from conns on EOF

  • @MarsMan2482
    @MarsMan2482 Год назад

    how would I connect to this server from another computer?

  • @savimcgee7443
    @savimcgee7443 Год назад

    :8080. Definitely 8080!

  • @tudorminciunescu9614
    @tudorminciunescu9614 Год назад

    code link ?

  • @liampugh4705
    @liampugh4705 11 месяцев назад +1

    Age, sex, location?

    • @anthonygg_
      @anthonygg_  11 месяцев назад

      3458 bc, god, Valhala

  • @JDJ1213
    @JDJ1213 10 месяцев назад

    Age, sex, location.

  • @BilalJer
    @BilalJer Год назад +1

    Dafuq is heish

  • @PomogB
    @PomogB Месяц назад +2

    what about Content-Security-Policy?

    • @angstrom1058
      @angstrom1058 Месяц назад

      I can't do what he's doing because of Content-Security-Policy. It happens also when I have a React app served by a Golang server, which is my core problem. In search of solutions. At least now, because of this video, I know it's a Content-Security-Policy problem. React / Chrome would just throw a 200 error and not say why. When I used the Chrome console directly, it spit out the Content-Security-Policy error. Chat GPT says for my React app, I need appropriate index.html headers. We'll see.

    • @maksimlevandovski1139
      @maksimlevandovski1139 26 дней назад

      I had the same problem in this tut. But if u want to test your application locally, u could use the incognito tab in Google Chrome

  • @irrefl1672
    @irrefl1672 Год назад

    I think that can be improved your current implementation does not work: i did this: err = websocket.Message.Send(ws, "gracias amigo for el mensaje!!")
    if err != nil {
    log.Printf("write error: %s", err.Error())
    return
    }