[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-5-12-%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252581%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525A7%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B9%25252525252525252525252525252525252525252525252588%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525B2%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252588%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525B0%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B9%25252525252525252525252525252525252525252525252580%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%2525252525252525252525252525252525252525252525259B%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B9%25252525252525252525252525252525252525252525252587%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252599%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525A0%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525B2%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525A9%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%252525252525252525252525252525252525252525252525B2%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B9%25252525252525252525252525252525252525252525252582%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252584%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B9%25252525252525252525252525252525252525252525252589%252525252525252525252525252525252525252525252525E0%252525252525252525252525252525252525252525252525B8%25252525252525252525252525252525252525252525252594-all-all-createdAt:desc-default":3},{"data":4,"page":504,"perPage":505,"totalItems":506,"totalPages":507},[5,70,107,153,206,244,287,324,365,401,431,462],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":66,"published_at":67,"school_blog":62,"short_description":68,"title":6,"updated":69,"slug":63,"views":65},"EP.125 TLS \u002F WSS และ Certificate Management สำหรับ WebSocket (Production & Enterprise)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Frn62rb24heeyiyo\u002Fcover_image_ep_1msbjluc3y.EnterpriseGuide.webp","2026-03-04 08:44:42.802Z",{"keywords":10,"locale":34,"school_blog":44},[11,19,24,29],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},"sclkey987654321","school_keywords","2026-03-04 08:44:41.631Z","","sipxojme8z97ei7","WebSocket TLS","2026-04-10 16:12:48.685Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:44:41.420Z","xjki2vhsm3f0jb4","WSS WebSocket","2026-04-10 16:12:48.600Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":48,"id":62,"slug":63,"updated":64,"views":65},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs",{"category":49},{"blogIds":50,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":56,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":57,"th":57},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-04-25 02:32:15.470Z","fi5y0zd7vudw30e","ep-125-tls-wss-certificate-management-for-websocket","2026-05-10 18:19:47.510Z",235,"rn62rb24heeyiyo","2026-01-12 03:50:15.171Z","เจาะลึกการใช้งาน TLS และ WSS สำหรับ WebSocket ตั้งแต่ความแตกต่างของ HTTPS vs WSS, การทำงานของ TLS Handshake, การจัดการ Certificate, Let’s Encrypt ไปจนถึง Zero-downtime Renewal สำหรับระบบ Production และ Enterprise","2026-05-08 06:51:56.053Z",{"alt":71,"cover_image_path":72,"created":73,"expand":74,"id":103,"published_at":104,"school_blog":99,"short_description":105,"title":71,"updated":106,"slug":100,"views":102},"EP.124 Security & Authentication ขั้นสูงสำหรับ WebSocket (JWT, Token Strategy & Secure Handshake)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F6ywcs1la9t4zwi0\u002Fcover_image_ep_qhtvcctin6.SecureHandshake.webp","2026-03-04 08:44:43.684Z",{"keywords":75,"locale":93,"school_blog":94},[76,77,78,83,88],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":79,"created_by":15,"id":80,"name":81,"updated":82,"updated_by":15},"2026-03-04 08:44:42.096Z","kr1dmn7sxgv9vxg","JWT WebSocket","2026-04-10 16:12:48.849Z",{"collectionId":12,"collectionName":13,"created":84,"created_by":15,"id":85,"name":86,"updated":87,"updated_by":15},"2026-03-04 08:44:42.406Z","julxx94rca568ku","WebSocket Authentication","2026-04-10 16:12:48.917Z",{"collectionId":12,"collectionName":13,"created":89,"created_by":15,"id":90,"name":91,"updated":92,"updated_by":15},"2026-03-04 08:44:13.770Z","ij1u9pugpnctjvk","WebSocket Security","2026-04-10 16:12:41.774Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":95,"id":99,"slug":100,"updated":101,"views":102},{"category":96},{"blogIds":97,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":98,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"r4w3srsh9edadud","websocket-security-authentication-jwt-secure-handshake","2026-05-08 20:47:14.816Z",226,"6ywcs1la9t4zwi0","2026-01-12 03:40:06.435Z","เจาะลึกการออกแบบระบบ Security สำหรับ WebSocket ในระดับ Production และ Enterprise ครอบคลุม JWT, Token Strategy, การป้องกัน WebSocket Hijacking และการทำ Secure Handshake อย่างถูกต้อง เพื่อรองรับระบบที่มีข้อมูลสำคัญและผู้ใช้จำนวนมาก","2026-05-08 06:51:56.302Z",{"alt":108,"cover_image_path":109,"created":110,"expand":111,"id":149,"published_at":150,"school_blog":145,"short_description":151,"title":108,"updated":152,"slug":146,"views":148},"กว่าจะเป็นภาษา JavaScript: ภาษาที่สร้างใน 10 วัน แต่ครองโลกทั้งใบ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fdns2yj06p07cxiw\u002Fbrendan_eich_the_creator_of_java_script_at_netscape_featuring_the_js_logo_and_code_snippets_p5l8mdud8o.webp","2026-03-04 08:20:47.880Z",{"keywords":112,"locale":133,"school_blog":134},[113,118,123,128],{"collectionId":12,"collectionName":13,"created":114,"created_by":15,"id":115,"name":116,"updated":117,"updated_by":15},"2026-03-04 08:20:36.060Z","xcq4mt3coqo1odt","V8 Engine","2026-04-10 16:07:27.526Z",{"collectionId":12,"collectionName":13,"created":119,"created_by":15,"id":120,"name":121,"updated":122,"updated_by":15},"2026-03-04 08:20:38.187Z","b4o3toqgoc84295","Brendan Eich","2026-04-10 16:07:27.995Z",{"collectionId":12,"collectionName":13,"created":124,"created_by":15,"id":125,"name":126,"updated":127,"updated_by":15},"2026-03-04 08:20:39.625Z","0399whisr6wvh9x","ประวัติ JavaScript","2026-04-10 16:07:28.151Z",{"collectionId":12,"collectionName":13,"created":129,"created_by":15,"id":130,"name":131,"updated":132,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":135,"collectionId":46,"collectionName":47,"created":15,"expand":136,"id":145,"slug":146,"updated":147,"views":148},"isnp2fv80bn3yem",{"category":137},{"blogIds":138,"collectionId":51,"collectionName":52,"created":139,"created_by":15,"id":135,"image":15,"image_alt":15,"image_path":15,"label":140,"name":141,"priority":142,"publish_at":143,"scheduled_at":15,"status":60,"updated":144,"updated_by":15},[],"2026-03-04 08:19:47.590Z",{"en":141,"th":141},"กว่าจะเป็นภาษาโค้ด",8,"2026-02-18 01:59:49.988Z","2026-04-25 02:32:14.031Z","n4c7o0yqlwcv639","history-of-javascript-from-10-days-to-global-standard","2026-05-12 13:08:13.414Z",238,"dns2yj06p07cxiw","2026-01-08 05:35:46.937Z","เจาะลึกประวัติศาสตร์ JavaScript จากจุดเริ่มต้นที่ Netscape สู่สงครามเบราว์เซอร์ และการก้าวขึ้นเป็นราชาแห่งการพัฒนาเว็บด้วย V8 Engine","2026-05-11 21:45:19.127Z",{"alt":154,"cover_image_path":155,"created":156,"expand":157,"id":202,"published_at":203,"school_blog":198,"short_description":204,"title":154,"updated":205,"slug":199,"views":201},"Git for Team: ทำงานร่วมกับทีมอย่างไรให้โปร? คู่มือวาง Workflow ไม่ให้โค้ดพัง","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fqtr2rpue3dll79j\u002Finfographic_showing_team_collaboration_using_git_and_git_hub_illustrating_branching_merging_and_pull_x2kuoopv4i.webp","2026-03-04 08:44:45.153Z",{"keywords":158,"locale":184,"school_blog":185},[159,164,169,174,179],{"collectionId":12,"collectionName":13,"created":160,"created_by":15,"id":161,"name":162,"updated":163,"updated_by":15},"2026-03-04 08:44:43.803Z","tsn8jg792h1wac5","Code Review","2026-04-10 16:12:49.012Z",{"collectionId":12,"collectionName":13,"created":165,"created_by":15,"id":166,"name":167,"updated":168,"updated_by":15},"2026-03-04 08:44:35.823Z","andd8rbw15sng17","GitHub","2026-04-10 16:12:47.387Z",{"collectionId":12,"collectionName":13,"created":170,"created_by":15,"id":171,"name":172,"updated":173,"updated_by":15},"2026-03-04 08:44:44.171Z","4i5n5i9cpmuwg5n","ทำงานเป็นทีม","2026-04-10 16:12:49.172Z",{"collectionId":12,"collectionName":13,"created":175,"created_by":15,"id":176,"name":177,"updated":178,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-04-10 16:12:47.226Z",{"collectionId":12,"collectionName":13,"created":180,"created_by":15,"id":181,"name":182,"updated":183,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-04-10 16:12:47.459Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":186,"collectionId":46,"collectionName":47,"created":15,"expand":187,"id":198,"slug":199,"updated":200,"views":201},"spm4l1k5bgmhmmt",{"category":188},{"blogIds":189,"collectionId":51,"collectionName":52,"created":190,"created_by":15,"id":186,"image":191,"image_alt":15,"image_path":192,"label":193,"name":194,"priority":195,"publish_at":196,"scheduled_at":15,"status":60,"updated":197,"updated_by":15},[],"2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":194,"th":194},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-04-25 02:32:14.497Z","p8mussz4d3imv1c","git-for-team-professional-workflow-guide","2026-05-12 16:26:58.523Z",415,"qtr2rpue3dll79j","2026-01-07 04:24:33.404Z","เลิกทำบาปต่อเพื่อนร่วมทีม! มาทำความเข้าใจการใช้ Git ในโลกแห่งความจริง ตั้งแต่การวางโครงสร้าง Branch ไปจนถึงกระบวนการ Pull Request และ Code Review เพื่อให้งานเดินหน้าอย่างไม่มีสะดุด","2026-05-08 06:51:56.957Z",{"alt":207,"cover_image_path":208,"created":209,"expand":210,"id":240,"published_at":241,"school_blog":238,"short_description":242,"title":207,"updated":243,"slug":239,"views":148},"กว่าจะเป็นภาษา C: รากฐานที่สร้างโลกโปรแกรมมิ่งสมัยใหม่","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F1g5o0h6567abvrn\u002Fcover_image_the_origin_of_c_the_foundation_of_modern_programming_8of9mwux13.webp","2026-03-04 08:20:49.766Z",{"keywords":211,"locale":232,"school_blog":233},[212,217,222,227],{"collectionId":12,"collectionName":13,"created":213,"created_by":15,"id":214,"name":215,"updated":216,"updated_by":15},"2026-03-04 08:20:42.894Z","q8fw2bf4sm83pak","Bell Labs","2026-04-10 16:07:28.504Z",{"collectionId":12,"collectionName":13,"created":218,"created_by":15,"id":219,"name":220,"updated":221,"updated_by":15},"2026-03-04 08:20:45.500Z","9f8c26oyzxwvs13","Dennis Ritchie","2026-04-10 16:07:28.644Z",{"collectionId":12,"collectionName":13,"created":223,"created_by":15,"id":224,"name":225,"updated":226,"updated_by":15},"2026-03-04 08:20:47.293Z","ou39mpoaswi4aaw","ประวัติภาษา C","2026-04-10 16:07:28.935Z",{"collectionId":12,"collectionName":13,"created":228,"created_by":15,"id":229,"name":230,"updated":231,"updated_by":15},"2026-03-04 08:20:49.166Z","sfmbfwte78iapqh","ภาษา C","2026-04-10 16:07:29.136Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":135,"collectionId":46,"collectionName":47,"created":15,"expand":234,"id":238,"slug":239,"updated":15,"views":148},{"category":235},{"blogIds":236,"collectionId":51,"collectionName":52,"created":139,"created_by":15,"id":135,"image":15,"image_alt":15,"image_path":15,"label":237,"name":141,"priority":142,"publish_at":143,"scheduled_at":15,"status":60,"updated":144,"updated_by":15},[],{"en":141,"th":141},"si4b3bern5ywhh2","history-of-c-programming-language","1g5o0h6567abvrn","2026-01-01 04:09:12.321Z","เจาะลึกประวัติศาสตร์ภาษา C จากจุดเริ่มต้นที่ Bell Labs สู่การเป็นรากฐานของ OS และภาษาโปรแกรมมิ่งทั่วโลก เรียนรู้เบื้องหลังความท้าทายทางเทคนิคที่เปลี่ยนโลกนักพัฒนาไปตลอดกาล","2026-05-11 21:45:19.372Z",{"alt":245,"cover_image_path":246,"created":247,"expand":248,"id":283,"published_at":284,"school_blog":280,"short_description":285,"title":245,"updated":286,"slug":281,"views":282},"JS2GO EP.50 การ Deploy Application: Go vs Node.js สำหรับระบบ Production","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F8hbhqgc0757fiic\u002Fcover_image_js2_go_ep_50_deploying_applications_go_vs_node_156u4kg4w1.oductionSystems.webp","2026-03-04 08:44:47.832Z",{"keywords":249,"locale":266,"school_blog":267},[250,255,256,261],{"collectionId":12,"collectionName":13,"created":251,"created_by":15,"id":252,"name":253,"updated":254,"updated_by":15},"2026-03-04 08:44:47.024Z","p4tvi007knx0nib","Deploy Application","2026-04-10 16:12:49.798Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":257,"created_by":15,"id":258,"name":259,"updated":260,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-04-10 16:07:29.504Z",{"collectionId":12,"collectionName":13,"created":262,"created_by":15,"id":263,"name":264,"updated":265,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-04-10 16:12:49.890Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":268,"collectionId":46,"collectionName":47,"created":15,"expand":269,"id":280,"slug":281,"updated":15,"views":282},"hsa1afr8fcnd6qb",{"category":270},{"blogIds":271,"collectionId":51,"collectionName":52,"created":272,"created_by":15,"id":268,"image":273,"image_alt":15,"image_path":274,"label":275,"name":276,"priority":277,"publish_at":278,"scheduled_at":15,"status":60,"updated":279,"updated_by":15},[],"2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":276,"th":276},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-04-25 02:32:14.339Z","2qqbgr4sjupn62h","deploy-application-go-vs-nodejs-production",230,"8hbhqgc0757fiic","2025-12-30 10:59:34.161Z","บทสรุป End-to-End Deployment เปรียบเทียบ Go และ Node.js ในโลก Production ตั้งแต่ Build, Docker, Secrets, CI\u002FCD ไปจนถึง Zero-downtime Deployment จากประสบการณ์ใช้งานจริง","2026-05-08 06:51:57.596Z",{"alt":288,"cover_image_path":289,"created":290,"expand":291,"id":320,"published_at":321,"school_blog":316,"short_description":322,"title":288,"updated":323,"slug":317,"views":319},"Git สำหรับผู้เริ่มต้น: เข้าใจ Add, Commit, Push แบบเห็นภาพ ไม่ต้องท่องจำ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0nq4jactw3ay5um\u002Finfographic_showing_git_workflow_working_directory_staging_area_and_local_repository_xretq2u7fp.webp","2026-03-04 08:44:47.152Z",{"keywords":292,"locale":310,"school_blog":311},[293,294,299,304,309],{"collectionId":12,"collectionName":13,"created":180,"created_by":15,"id":181,"name":182,"updated":183,"updated_by":15},{"collectionId":12,"collectionName":13,"created":295,"created_by":15,"id":296,"name":297,"updated":298,"updated_by":15},"2026-03-04 08:44:45.516Z","3nmqs1jfzhl7unv","สอน Git","2026-04-10 16:12:49.430Z",{"collectionId":12,"collectionName":13,"created":300,"created_by":15,"id":301,"name":302,"updated":303,"updated_by":15},"2026-03-04 08:44:45.738Z","zii0fvxs1ygxi1r","Git สำหรับมือใหม่","2026-04-10 16:12:49.524Z",{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},"2026-03-04 08:44:46.125Z","reeulx12kt2xrmk","พื้นฐาน Git","2026-04-10 16:12:49.619Z",{"collectionId":12,"collectionName":13,"created":175,"created_by":15,"id":176,"name":177,"updated":178,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":186,"collectionId":46,"collectionName":47,"created":15,"expand":312,"id":316,"slug":317,"updated":318,"views":319},{"category":313},{"blogIds":314,"collectionId":51,"collectionName":52,"created":190,"created_by":15,"id":186,"image":191,"image_alt":15,"image_path":192,"label":315,"name":194,"priority":195,"publish_at":196,"scheduled_at":15,"status":60,"updated":197,"updated_by":15},[],{"en":194,"th":194},"8ljoi174s3n7xdv","git-for-beginners-visual-guide","2026-05-09 16:20:48.252Z",274,"0nq4jactw3ay5um","2025-12-30 10:31:28.406Z","เลิกตั้งชื่อไฟล์ Project_Final ได้แล้ว! มาทำความเข้าใจพื้นฐาน Git ผ่านภาพจำที่เข้าใจง่าย เรียนรู้ขั้นตอน Add, Commit และ Push แบบโปรแกรมเมอร์มืออาชีพ","2026-05-08 06:51:57.438Z",{"alt":325,"cover_image_path":326,"created":327,"expand":328,"id":361,"published_at":362,"school_blog":357,"short_description":363,"title":325,"updated":364,"slug":358,"views":360},"EP.123 Load Balancing & Sticky Sessions สำหรับ WebSocket (Production-Ready Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F9jkgoya0lc1xyon\u002Fcover_image_ep_gqh5x2ytmj.onsforWebSocket.webp","2026-03-04 08:44:49.572Z",{"keywords":329,"locale":351,"school_blog":352},[330,335,336,341,346],{"collectionId":12,"collectionName":13,"created":331,"created_by":15,"id":332,"name":333,"updated":334,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-04-10 16:12:50.171Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":337,"created_by":15,"id":338,"name":339,"updated":340,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-04-10 16:08:08.875Z",{"collectionId":12,"collectionName":13,"created":342,"created_by":15,"id":343,"name":344,"updated":345,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-04-10 16:12:50.311Z",{"collectionId":12,"collectionName":13,"created":347,"created_by":15,"id":348,"name":349,"updated":350,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":353,"id":357,"slug":358,"updated":359,"views":360},{"category":354},{"blogIds":355,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":356,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"rr43ycru4104v7f","ep-123-load-balancing-sticky-sessions-websocket","2026-05-08 21:11:54.216Z",261,"9jkgoya0lc1xyon","2025-12-30 09:45:56.384Z","เจาะลึกการออกแบบ Load Balancer สำหรับ WebSocket ตั้งแต่หลักการ Sticky Session ไปจนถึงแนวทาง Scale ระบบจริงบน Kubernetes เพื่อป้องกันการหลุดของ connection และรองรับผู้ใช้จำนวนมากในระดับ Production","2026-05-08 06:51:58.260Z",{"alt":366,"cover_image_path":367,"created":368,"expand":369,"id":397,"published_at":398,"school_blog":394,"short_description":399,"title":366,"updated":400,"slug":395,"views":396},"EP.122 ขยายระบบ WebSocket ข้าม Region ด้วย Geo-distributed Scaling","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fknc34p98jnuu78s\u002Fcover_image_ep_wgq6o3mql5.iesforWebSocket.webp","2026-03-04 08:44:49.918Z",{"keywords":370,"locale":388,"school_blog":389},[371,372,373,378,383],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":374,"created_by":15,"id":375,"name":376,"updated":377,"updated_by":15},"2026-03-04 08:44:32.154Z","u0s66bjop3dljau","Horizontal Scaling","2026-04-10 16:12:46.399Z",{"collectionId":12,"collectionName":13,"created":379,"created_by":15,"id":380,"name":381,"updated":382,"updated_by":15},"2026-03-04 08:44:49.245Z","mmj7m8vbrznqxx6","Geo-Distributed","2026-04-10 16:12:50.450Z",{"collectionId":12,"collectionName":13,"created":384,"created_by":15,"id":385,"name":386,"updated":387,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-04-10 16:12:50.583Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":390,"id":394,"slug":395,"updated":15,"views":396},{"category":391},{"blogIds":392,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":393,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"br3q5z8ln357s53","websocket-geo-scaling-strategies",225,"knc34p98jnuu78s","2025-12-30 09:45:47.000Z","เรียนรู้แนวทางขยาย WebSocket Server แบบข้ามภูมิภาค เพื่อลด latency รองรับผู้ใช้ทั่วโลก และวางโครงสร้างให้พร้อมระดับ Enterprise","2026-05-08 06:51:58.530Z",{"alt":402,"cover_image_path":403,"created":404,"expand":405,"id":427,"published_at":428,"school_blog":423,"short_description":429,"title":402,"updated":430,"slug":424,"views":426},"EP.121 Deploy WebSocket Server บน Kubernetes ให้เสถียรและพร้อมใช้งานจริง","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F7zzc9diqnbfzpd5\u002Fcover_image_ep_itflh3jc0p.oductionSystems.webp","2026-03-04 08:44:50.865Z",{"keywords":406,"locale":417,"school_blog":418},[407,408,409,414,415,416],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":337,"created_by":15,"id":338,"name":339,"updated":340,"updated_by":15},{"collectionId":12,"collectionName":13,"created":410,"created_by":15,"id":411,"name":412,"updated":413,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-04-10 16:12:43.373Z",{"collectionId":12,"collectionName":13,"created":262,"created_by":15,"id":263,"name":264,"updated":265,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":347,"created_by":15,"id":348,"name":349,"updated":350,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":419,"id":423,"slug":424,"updated":425,"views":426},{"category":420},{"blogIds":421,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":422,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"jdvfu3khsdfw08k","deploy-websocket-server-kubernetes-production","2026-05-12 19:19:21.482Z",273,"7zzc9diqnbfzpd5","2025-12-29 10:10:07.916Z","เรียนรู้วิธี Deploy WebSocket Server ด้วย Kubernetes ตั้งแต่การสร้าง Docker Image, ตั้งค่า Load Balancer, ใช้ Sticky Session, Auto Scaling และจัดการ Graceful Shutdown ให้พร้อมใช้งานในระดับ Production จริง","2026-05-08 06:51:58.854Z",{"alt":432,"cover_image_path":433,"created":434,"expand":435,"id":458,"published_at":459,"school_blog":455,"short_description":460,"title":432,"updated":461,"slug":456,"views":148},"EP.120 Whiteboard & Real-time Drawing Synchronization ด้วย WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fb3o64zx8imsejrd\u002Fcover_image_ep_siccboj32o.onwithWebSocket.webp","2026-03-04 08:44:52.925Z",{"keywords":436,"locale":449,"school_blog":450},[437,438,442,443,444],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":439,"created_by":15,"id":440,"name":57,"updated":441,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":347,"created_by":15,"id":348,"name":349,"updated":350,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":445,"created_by":15,"id":446,"name":447,"updated":448,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-04-10 16:12:50.940Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":15,"expand":451,"id":455,"slug":456,"updated":457,"views":148},{"category":452},{"blogIds":453,"collectionId":51,"collectionName":52,"created":53,"created_by":15,"id":45,"image":54,"image_alt":15,"image_path":55,"label":454,"name":57,"priority":58,"publish_at":59,"scheduled_at":15,"status":60,"updated":61,"updated_by":15},[],{"en":57,"th":57},"clsm7oxkvsptxhx","ep-120-realtime-whiteboard-drawing-websocket","2026-05-08 21:05:08.442Z","b3o64zx8imsejrd","2025-12-29 04:41:19.809Z","ออกแบบระบบ Whiteboard ที่รองรับการวาดพร้อมกันหลายคนแบบเรียลไทม์ ด้วย Go และ WebSocket พร้อมแนวคิด undo\u002Fredo และ performance optimization","2026-05-08 06:51:59.489Z",{"alt":463,"cover_image_path":464,"created":465,"expand":466,"id":500,"published_at":501,"school_blog":496,"short_description":502,"title":463,"updated":503,"slug":497,"views":499},"JS2GO EP.49 Security สำหรับ Backend ด้วย Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fik5ueoh4be7ojlt\u002Fcover_image_js2_go_ep_49_backend_security_with_go_and_node_3l4haf828s.js.webp","2026-03-04 08:44:53.727Z",{"keywords":467,"locale":490,"school_blog":491},[468,473,478,483,488,489],{"collectionId":12,"collectionName":13,"created":469,"created_by":15,"id":470,"name":471,"updated":472,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-04-10 16:12:51.107Z",{"collectionId":12,"collectionName":13,"created":474,"created_by":15,"id":475,"name":476,"updated":477,"updated_by":15},"2026-03-04 08:34:18.095Z","z3u3nql685g5e3b","Authentication","2026-04-10 16:08:11.664Z",{"collectionId":12,"collectionName":13,"created":479,"created_by":15,"id":480,"name":481,"updated":482,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-04-10 16:12:51.264Z",{"collectionId":12,"collectionName":13,"created":484,"created_by":15,"id":485,"name":486,"updated":487,"updated_by":15},"2026-03-04 08:44:52.790Z","tkf1l5rauw0t7m0","Secure API Design","2026-04-10 16:12:51.172Z",{"collectionId":12,"collectionName":13,"created":257,"created_by":15,"id":258,"name":259,"updated":260,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":268,"collectionId":46,"collectionName":47,"created":15,"expand":492,"id":496,"slug":497,"updated":498,"views":499},{"category":493},{"blogIds":494,"collectionId":51,"collectionName":52,"created":272,"created_by":15,"id":268,"image":273,"image_alt":15,"image_path":274,"label":495,"name":276,"priority":277,"publish_at":278,"scheduled_at":15,"status":60,"updated":279,"updated_by":15},[],{"en":276,"th":276},"q6au12trb7ipmxx","js2go-ep49-backend-security-authentication-authorization-validation","2026-05-11 21:13:57.128Z",252,"ik5ueoh4be7ojlt","2025-12-24 10:19:35.052Z","สรุปพื้นฐาน Security ที่ระบบ Backend ต้องมี ตั้งแต่ Authentication Authorization และ Data Validation พร้อมแนวทางใช้งานจริงใน Go และ Node.js สำหรับระบบ Production","2026-05-08 06:51:59.827Z",5,12,407,34]