[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-7-12-Web%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":506,"perPage":507,"totalItems":508,"totalPages":509},[5,80,134,170,207,255,292,328,371,400,437,469],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":76,"published_at":77,"school_blog":72,"short_description":78,"title":6,"updated":79,"slug":73,"views":75},"JS2GO EP.44 การเชื่อมต่อ Database: SQL & NoSQL ใน JavaScript และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fy8ql3s3zg33thzx\u002Fcover_image_js2_go_ep_i85wxvw0ej.JavaScriptandGo.webp","2026-03-04 08:45:10.183Z",{"keywords":10,"locale":44,"school_blog":54},[11,19,24,29,34,39],{"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:24:40.405Z","","05u3tysava2z6ga","Node.js","2026-04-10 16:07:29.504Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-04-10 16:12:54.755Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:45:09.036Z","l1oi3jpol4c4ezx","Database","2026-04-10 16:12:54.847Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":12,"collectionName":13,"created":40,"created_by":15,"id":41,"name":42,"updated":43,"updated_by":15},"2026-03-04 08:45:09.799Z","402ofda7qxj0vs0","การเชื่อมต่อฐานข้อมูล","2026-04-10 16:12:55.032Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},"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":55,"collectionId":56,"collectionName":57,"created":15,"expand":58,"id":72,"slug":73,"updated":74,"views":75},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":59},{"blogIds":60,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":66,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","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":67,"th":67},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-05-09 16:26:51.129Z",219,"y8ql3s3zg33thzx","2025-12-08 07:51:54.211Z","สรุปวิธีเชื่อมต่อ PostgreSQL, MySQL, MongoDB และ Redis ใน JavaScript และ Go พร้อมตัวอย่างโค้ดจริง การตั้งค่า Connection Pool, การเลือก ORM\u002FQuery Builder และ Best Practices ที่ต้องรู้ก่อนขึ้นระบบ Production","2026-05-08 06:52:04.733Z",{"alt":81,"cover_image_path":82,"created":83,"expand":84,"id":130,"published_at":131,"school_blog":126,"short_description":132,"title":81,"updated":133,"slug":127,"views":129},"EP.114 การจัดการ Multi-device & Multi-session สำหรับ WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F3ijessvp7wgttqd\u002Fcover_image_ep_ozojn2qh39.ebSocketSystems.webp","2026-03-04 08:45:11.857Z",{"keywords":85,"locale":112,"school_blog":113},[86,91,96,97,102,107],{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"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":92,"created_by":15,"id":93,"name":94,"updated":95,"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":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:45:11.216Z","4pcpc8j9lxwki40","Multi-session","2026-04-10 16:12:55.409Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-04 08:45:11.536Z","dam2zlrgu9l1qrd","Multi-device","2026-04-10 16:12:55.519Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-04-10 16:08:05.227Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":115,"id":126,"slug":127,"updated":128,"views":129},"wqxt7ag2gn7xcmk",{"category":116},{"blogIds":117,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":121,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],"2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":122,"th":122},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-04-25 02:32:15.470Z","wzoz7l3fkolypwa","ep114-multi-device-multi-session-websocket","2026-05-07 05:33:17.804Z",270,"3ijessvp7wgttqd","2025-12-08 03:47:51.843Z","เรียนรู้การออกแบบระบบ WebSocket ที่รองรับผู้ใช้ 1 คนเข้าใช้งานหลายอุปกรณ์พร้อมกันอย่างเสถียร ปลอดภัย และซิงก์ข้อมูลแบบเรียลไทม์ พร้อมตัวอย่างโค้ด Go และแนวทางระดับ Production","2026-05-08 06:52:05.632Z",{"alt":135,"cover_image_path":136,"created":137,"expand":138,"id":166,"published_at":167,"school_blog":163,"short_description":168,"title":135,"updated":169,"slug":164,"views":165},"EP.115 การใช้ WebSocket ในระบบ Multiplayer Game ขั้นสูง (Advanced Multiplayer Game System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fghutpdhsg8a4psb\u002Fcover_image_ep_4l3pq7n7eo.bSocketinGolang.webp","2026-03-04 08:45:10.850Z",{"keywords":139,"locale":157,"school_blog":158},[140,145,150,151,152],{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"updated_by":15},"2026-03-04 08:45:10.623Z","2zhfdpu8sy1xeju","Golang WebSocket","2026-04-10 16:12:55.126Z",{"collectionId":12,"collectionName":13,"created":146,"created_by":15,"id":147,"name":148,"updated":149,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-04-10 16:07:26.172Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":153,"created_by":15,"id":154,"name":155,"updated":156,"updated_by":15},"2026-03-04 08:45:09.425Z","75vnd9vtdgbgcsr","Multiplayer Game","2026-04-10 16:12:54.941Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":159,"id":163,"slug":164,"updated":15,"views":165},{"category":160},{"blogIds":161,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":162,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],{"en":122,"th":122},"9o11ptzo0838b9r","ep115-websocket-multiplayer-game-advanced",235,"ghutpdhsg8a4psb","2025-12-08 02:13:56.236Z","เรียนรู้การออกแบบ Multiplayer Game แบบเรียลไทม์ด้วย Go และ WebSocket ตั้งแต่ Player Sync, Position Update, Event Broadcast, Room Architecture ไปจนถึงเทคนิคลด Latency และแนวทางระดับ Production สำหรับเกมหลายผู้เล่น","2026-05-08 06:52:05.171Z",{"alt":171,"cover_image_path":172,"created":173,"expand":174,"id":203,"published_at":204,"school_blog":199,"short_description":205,"title":171,"updated":206,"slug":200,"views":202},"JS2GO EP.43 การทำ Rate Limiting และ Throttling ใน Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwtikt0mr8bk7nk\u002Fcover_image_js2_go_ep_43_rate_limiting_and_throttling_in_go_and_node_083y6kqmje.js.webp","2026-03-04 08:45:16.034Z",{"keywords":175,"locale":193,"school_blog":194},[176,181,186,187,188],{"collectionId":12,"collectionName":13,"created":177,"created_by":15,"id":178,"name":179,"updated":180,"updated_by":15},"2026-03-04 08:44:38.026Z","m3dqo2zalnfaoof","Token Bucket","2026-04-10 16:12:47.845Z",{"collectionId":12,"collectionName":13,"created":182,"created_by":15,"id":183,"name":184,"updated":185,"updated_by":15},"2026-03-04 08:45:14.634Z","k64fy7g22x7ash7","Throttling","2026-04-10 16:12:56.314Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":189,"created_by":15,"id":190,"name":191,"updated":192,"updated_by":15},"2026-03-04 08:34:07.915Z","921nl48h9in67sw","Rate Limiting","2026-04-10 16:08:07.808Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":195,"id":199,"slug":200,"updated":201,"views":202},{"category":196},{"blogIds":197,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":198,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"xnajds5fdcdxt16","js2go-ep43-rate-limiting-throttling-go-nodejs","2026-05-13 08:25:54.917Z",227,"kwtikt0mr8bk7nk","2025-12-03 14:28:15.587Z","เรียนรู้วิธีป้องกันระบบล่มด้วย Rate Limiting และ Throttling ทั้ง Token Bucket, Leaky Bucket และ Sliding Window พร้อมตัวอย่างโค้ดจริงใน Go และ Node.js สำหรับใช้งานในระบบระดับ Production","2026-05-08 06:52:07.271Z",{"alt":208,"cover_image_path":209,"created":210,"expand":211,"id":251,"published_at":252,"school_blog":247,"short_description":253,"title":208,"updated":254,"slug":248,"views":250},"คุณอาจกำลังเสียเวลาอ่านโค้ดโดยไม่จำเป็น… ถ้ายังไม่รู้จัก Code Wiki","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ff2draewgm0el39c\u002Fwhat_is_code_wiki_google_s_tool_that_helps_developers_understand_code_faster_ji0s94vmdo.webp","2026-03-04 08:45:17.799Z",{"keywords":212,"locale":233,"school_blog":234},[213,218,223,228],{"collectionId":12,"collectionName":13,"created":214,"created_by":15,"id":215,"name":216,"updated":217,"updated_by":15},"2026-03-04 08:45:17.133Z","71gsmylmonz3ikx","code wiki","2026-04-10 16:12:56.757Z",{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},"2026-03-04 08:45:16.903Z","fc3dajgzvy2vdec","google code wiki","2026-04-10 16:12:56.602Z",{"collectionId":12,"collectionName":13,"created":224,"created_by":15,"id":225,"name":226,"updated":227,"updated_by":15},"2026-03-04 08:45:16.585Z","h61ztnkgd0y3ooz","developer tools","2026-04-10 16:12:56.507Z",{"collectionId":12,"collectionName":13,"created":229,"created_by":15,"id":230,"name":231,"updated":232,"updated_by":15},"2026-03-04 08:20:15.564Z","9zhk20p0247axym","Google","2026-04-10 16:07:26.313Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":235,"collectionId":56,"collectionName":57,"created":15,"expand":236,"id":247,"slug":248,"updated":249,"views":250},"jwhmeg2uxwz0bkp",{"category":237},{"blogIds":238,"collectionId":61,"collectionName":62,"created":239,"created_by":15,"id":235,"image":240,"image_alt":15,"image_path":241,"label":242,"name":243,"priority":244,"publish_at":245,"scheduled_at":15,"status":70,"updated":246,"updated_by":15},[],"2026-03-04 08:31:40.635Z","1qt33a4n2u3_lr23qy62xh.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fjwhmeg2uxwz0bkp\u002F1qt33a4n2u3_lr23qy62xh.png",{"en":243,"th":243},"Tools & Resources",0,"2025-01-31 09:55:27.001Z","2026-04-25 02:32:14.689Z","gado4zcess7ysg9","code-wiki-save-time-reading-code","2026-05-13 13:46:40.751Z",317,"f2draewgm0el39c","2025-12-02 03:40:15.214Z","Code Wiki คือเครื่องมือใหม่จาก Google ที่ช่วยสร้างเอกสารโค้ดแบบอัตโนมัติและอัปเดตตามโค้ดจริง ทำให้นักพัฒนาทำความเข้าใจระบบได้เร็วขึ้น ลดเวลาในการอ่านโค้ดย้อน และปรับปรุงประสบการณ์การทำงานของทีม Dev อย่างชัดเจน","2026-05-08 06:52:07.701Z",{"alt":256,"cover_image_path":257,"created":258,"expand":259,"id":288,"published_at":289,"school_blog":284,"short_description":290,"title":256,"updated":291,"slug":285,"views":287},"JS2GO EP.42 Goroutine Pools และ Worker Pools ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fcky7eocdx79x37y\u002Fcover_image_js2_go_ep_h9thc5vq15.GoandJavaScript.webp","2026-03-04 08:45:18.581Z",{"keywords":260,"locale":278,"school_blog":279},[261,262,263,268,273],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},"2026-03-04 08:24:48.143Z","dourw0uuydrrh1h","Concurrency","2026-04-10 16:07:30.157Z",{"collectionId":12,"collectionName":13,"created":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},"2026-03-04 08:34:34.471Z","wdd8fb47sbrmq28","Worker Pool","2026-04-10 16:08:17.741Z",{"collectionId":12,"collectionName":13,"created":274,"created_by":15,"id":275,"name":276,"updated":277,"updated_by":15},"2026-03-04 08:45:16.045Z","1h6015yv90l5ktw","Goroutine Pool","2026-04-10 16:12:56.407Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":280,"id":284,"slug":285,"updated":286,"views":287},{"category":281},{"blogIds":282,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":283,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"76bhys68f0c8v31","js2go-ep42-goroutine-pool-worker-pool-go-vs-javascript","2026-05-13 04:18:59.401Z",220,"cky7eocdx79x37y","2025-12-02 03:39:17.183Z","เรียนรู้วิธีควบคุมจำนวนงานพร้อมกันด้วย Goroutine Pools และ Worker Pools เพื่อป้องกัน resource leak และทำให้ระบบรองรับโหลดระดับหมื่นคำขอ\u002Fวินาทีได้อย่างเสถียร พร้อมตัวอย่างโค้ดจริงทั้ง Go และ JavaScript","2026-05-08 06:52:07.879Z",{"alt":293,"cover_image_path":294,"created":295,"expand":296,"id":324,"published_at":325,"school_blog":320,"short_description":326,"title":293,"updated":327,"slug":321,"views":323},"EP.113 การสร้างระบบ Chat Multi-room ขั้นสูง (Advanced Multi-room Chat System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F031eo95zo2f02o0\u002Fcover_image_ep_ppxwfo3653.hGoandWebSocket.webp","2026-03-04 08:45:13.632Z",{"keywords":297,"locale":314,"school_blog":315},[298,302,307,312,313],{"collectionId":12,"collectionName":13,"created":299,"created_by":15,"id":300,"name":122,"updated":301,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-04-10 16:12:50.850Z",{"collectionId":12,"collectionName":13,"created":303,"created_by":15,"id":304,"name":305,"updated":306,"updated_by":15},"2026-03-04 08:45:12.082Z","d1gcnwwosqk2zn0","redis pubsub","2026-04-10 16:12:55.686Z",{"collectionId":12,"collectionName":13,"created":308,"created_by":15,"id":309,"name":310,"updated":311,"updated_by":15},"2026-03-04 08:45:12.418Z","vbx3b3qn50sn0tr","Multi-room Chat","2026-04-10 16:12:55.814Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":316,"id":320,"slug":321,"updated":322,"views":323},{"category":317},{"blogIds":318,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":319,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],{"en":122,"th":122},"c5vhepb3pkr5tot","go-advanced-multiroom-chat-system","2026-05-13 14:45:55.790Z",234,"031eo95zo2f02o0","2025-12-02 03:38:42.902Z","สร้างระบบแชทแบบหลายห้อง (Multi-room Chat) ที่รองรับผู้ใช้หลายกลุ่มพร้อมกัน พร้อมฟังก์ชันกระจายข้อความแบบเรียลไทม์ และเชื่อมต่อ Redis Pub\u002FSub เพื่อรองรับหลาย instance ได้จริงในระบบ production","2026-05-08 06:52:06.192Z",{"alt":329,"cover_image_path":330,"created":331,"expand":332,"id":367,"published_at":368,"school_blog":363,"short_description":369,"title":329,"updated":370,"slug":364,"views":366},"EP.112 การสร้างระบบ Notification แบบเรียลไทม์ (Real-time Notification System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fwbl9d896ederjtt\u002Fcover_image_ep_ex8tskqzez.withGoWebSocket.webp","2026-03-04 08:45:14.603Z",{"keywords":333,"locale":357,"school_blog":358},[334,335,340,345,346,347,352],{"collectionId":12,"collectionName":13,"created":87,"created_by":15,"id":88,"name":89,"updated":90,"updated_by":15},{"collectionId":12,"collectionName":13,"created":336,"created_by":15,"id":337,"name":338,"updated":339,"updated_by":15},"2026-03-04 08:45:13.969Z","pyniezbvfdbyuyc","real-time notifications","2026-04-10 16:12:56.096Z",{"collectionId":12,"collectionName":13,"created":341,"created_by":15,"id":342,"name":343,"updated":344,"updated_by":15},"2026-03-04 08:34:10.254Z","rss87kgvhtvkri1","Redis Pub\u002FSub","2026-04-10 16:08:08.714Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},{"collectionId":12,"collectionName":13,"created":348,"created_by":15,"id":349,"name":350,"updated":351,"updated_by":15},"2026-03-04 08:45:13.578Z","qwq1kseajvv4cne","notification system","2026-04-10 16:12:55.954Z",{"collectionId":12,"collectionName":13,"created":353,"created_by":15,"id":354,"name":355,"updated":356,"updated_by":15},"2026-03-04 08:45:14.176Z","90clm03jhn4xsnp","Notification","2026-04-10 16:12:56.243Z",{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":359,"id":363,"slug":364,"updated":365,"views":366},{"category":360},{"blogIds":361,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":362,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],{"en":122,"th":122},"8g70iqmnsdxbwpb","websocket-real-time-notification-ep112","2026-05-13 07:35:47.829Z",343,"wbl9d896ederjtt","2025-12-01 04:20:07.889Z","เรียนรู้วิธีสร้างระบบ Notification แบบเรียลไทม์ด้วย Go และ WebSocket พร้อมรองรับการขยายระบบด้วย Redis Pub\u002FSub เพื่อให้ผู้ใช้ได้รับการแจ้งเตือนทันทีเมื่อเกิด Event สำคัญ","2026-05-08 06:52:06.366Z",{"alt":372,"cover_image_path":373,"created":374,"expand":375,"id":396,"published_at":397,"school_blog":392,"short_description":398,"title":372,"updated":399,"slug":393,"views":395},"JS2GO EP.41 การจัดการ Concurrency Patterns ขั้นสูงใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnmahpjkd1ktk7id\u002Fcover_image_js2_go_ep_2ioizc6p6b.GoandJavaScript.webp","2026-03-04 08:45:18.911Z",{"keywords":376,"locale":386,"school_blog":387},[377,382,383,384,385],{"collectionId":12,"collectionName":13,"created":378,"created_by":15,"id":379,"name":380,"updated":381,"updated_by":15},"2026-03-04 08:45:18.214Z","teavruxi3wptjg2","Fan-in Fan-out","2026-04-10 16:12:56.820Z",{"collectionId":12,"collectionName":13,"created":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":388,"id":392,"slug":393,"updated":394,"views":395},{"category":389},{"blogIds":390,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":391,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"hntkdnpnkznr05d","js2go-ep41-advanced-concurrency-patterns-go-vs-javascript","2026-05-09 00:22:33.528Z",214,"nmahpjkd1ktk7id","2025-11-25 09:53:31.002Z","เรียนรู้ Worker Pool, Fan-in\u002FFan-out, Rate Limiter และ Pipeline Optimization เปรียบเทียบการทำงานระหว่าง Go และ JavaScript พร้อมตัวอย่างที่ใช้จริงในระบบ Production","2026-05-08 06:52:08.080Z",{"alt":401,"cover_image_path":402,"created":403,"expand":404,"id":433,"published_at":434,"school_blog":429,"short_description":435,"title":401,"updated":436,"slug":430,"views":432},"JS2GO EP.40 การ Optimize Performance ของโค้ด: Go vs JavaScript ภาษาไหนเร็วกว่า?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fxqxhqcf7ezee2ok\u002Fcover_image_for_js2_go_ep_qzlvftk3wr.hichOneIsFaster.webp","2026-03-04 08:45:20.755Z",{"keywords":405,"locale":423,"school_blog":424},[406,411,416,421,422],{"collectionId":12,"collectionName":13,"created":407,"created_by":15,"id":408,"name":409,"updated":410,"updated_by":15},"2026-03-04 08:45:19.588Z","jiiqle4ur9lyqjr","Garbage Collection","2026-04-10 16:12:57.067Z",{"collectionId":12,"collectionName":13,"created":412,"created_by":15,"id":413,"name":414,"updated":415,"updated_by":15},"2026-03-04 08:45:19.280Z","2zphwe6a9vls84d","Benchmark","2026-04-10 16:12:56.915Z",{"collectionId":12,"collectionName":13,"created":417,"created_by":15,"id":418,"name":419,"updated":420,"updated_by":15},"2026-03-04 08:45:19.946Z","qvr2sryoiqkkq1g","Optimize Performance","2026-04-10 16:12:57.204Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":55,"collectionId":56,"collectionName":57,"created":15,"expand":425,"id":429,"slug":430,"updated":431,"views":432},{"category":426},{"blogIds":427,"collectionId":61,"collectionName":62,"created":63,"created_by":15,"id":55,"image":64,"image_alt":15,"image_path":65,"label":428,"name":67,"priority":68,"publish_at":69,"scheduled_at":15,"status":70,"updated":71,"updated_by":15},[],{"en":67,"th":67},"ym4kynngu92kw5x","js2go-ep40-optimize-performance-go-vs-javascript","2026-05-13 08:31:43.464Z",223,"xqxhqcf7ezee2ok","2025-11-25 09:45:29.314Z","เรียนรู้เทคนิคการเพิ่มประสิทธิภาพของโค้ดทั้งใน Go และ JavaScript ตั้งแต่ Garbage Collection, Memory Profiling, Parallel Execution ไปจนถึง Benchmark Tools พร้อมเปรียบเทียบว่าแต่ละภาษาทำงานได้ดีในสถานการณ์แบบไหน","2026-05-08 06:52:09.702Z",{"alt":438,"cover_image_path":439,"created":440,"expand":441,"id":465,"published_at":466,"school_blog":462,"short_description":467,"title":438,"updated":468,"slug":463,"views":464},"EP.111 การจัดการ Message Ordering และ Event Sequence ให้ถูกต้อง 100%","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fytezt4r7uzpy79y\u002Fcover_image_for_golang_the_series_ep_yzbl8jnv38.ebSocketSystems.webp","2026-03-04 08:45:21.561Z",{"keywords":442,"locale":456,"school_blog":457},[443,444,449,454,455],{"collectionId":12,"collectionName":13,"created":141,"created_by":15,"id":142,"name":143,"updated":144,"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:45:20.573Z","v392y0yjhdt1ttt","Event Sequence","2026-04-10 16:12:57.528Z",{"collectionId":12,"collectionName":13,"created":450,"created_by":15,"id":451,"name":452,"updated":453,"updated_by":15},"2026-03-04 08:45:20.175Z","qt9i7rqnfh0kczq","Message Ordering","2026-04-10 16:12:57.376Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":458,"id":462,"slug":463,"updated":15,"views":464},{"category":459},{"blogIds":460,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":461,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],{"en":122,"th":122},"c1ullelv877gga6","ep111-message-ordering-event-sequence",224,"ytezt4r7uzpy79y","2025-11-24 09:41:22.301Z","ระบบ WebSocket ที่มีผู้ใช้จำนวนมากอาจเจอปัญหาข้อความหลุดลำดับ (Out-of-Order). EP นี้สอนเทคนิคกำหนด Sequence ID, การจัดลำดับก่อน Broadcast, การ Sync ผ่าน Redis Pub\u002FSub และระบบ Recovery เพื่อให้ข้อความเรียงถูกต้อง 100% ในระดับ Production.","2026-05-08 06:52:10.087Z",{"alt":470,"cover_image_path":471,"created":472,"expand":473,"id":502,"published_at":503,"school_blog":498,"short_description":504,"title":470,"updated":505,"slug":499,"views":501},"EP.110 การทำ Auto-Scaling และ Load Balancing ขั้นสูง สำหรับ WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0s8pe3g2y0qas2l\u002Fcover_image_for_golang_the_series_ep_bjd5koqmts.ebSocketServers.webp","2026-03-04 08:45:22.302Z",{"keywords":474,"locale":492,"school_blog":493},[475,480,481,486,491],{"collectionId":12,"collectionName":13,"created":476,"created_by":15,"id":477,"name":478,"updated":479,"updated_by":15},"2026-03-04 08:45:21.423Z","li64irj457fco7n","WebSocket Production","2026-04-10 16:12:57.668Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":482,"created_by":15,"id":483,"name":484,"updated":485,"updated_by":15},"2026-03-04 08:34:03.856Z","9dujh23qyko22y0","Load Balancing","2026-04-10 16:08:06.326Z",{"collectionId":12,"collectionName":13,"created":487,"created_by":15,"id":488,"name":489,"updated":490,"updated_by":15},"2026-03-04 08:45:22.045Z","dfxjlxr48oep97h","Auto-Scaling","2026-04-10 16:12:57.746Z",{"collectionId":12,"collectionName":13,"created":108,"created_by":15,"id":109,"name":110,"updated":111,"updated_by":15},{"code":45,"collectionId":46,"collectionName":47,"created":48,"flag":49,"id":50,"is_default":51,"label":52,"updated":53},{"category":114,"collectionId":56,"collectionName":57,"created":15,"expand":494,"id":498,"slug":499,"updated":500,"views":501},{"category":495},{"blogIds":496,"collectionId":61,"collectionName":62,"created":118,"created_by":15,"id":114,"image":119,"image_alt":15,"image_path":120,"label":497,"name":122,"priority":123,"publish_at":124,"scheduled_at":15,"status":70,"updated":125,"updated_by":15},[],{"en":122,"th":122},"n8v6ufz2p8bhb1f","websocket-auto-scaling-load-balancing","2026-05-13 05:19:05.211Z",242,"0s8pe3g2y0qas2l","2025-11-24 03:06:21.583Z","เรียนรู้การออกแบบ WebSocket Server ที่สามารถปรับขนาดได้อัตโนมัติ และกระจายโหลดอย่างมีประสิทธิภาพด้วย Kubernetes, Sticky Session และ Redis Pub\u002FSub เพื่อรองรับผู้ใช้หลักหมื่นคนพร้อมกัน","2026-05-08 06:52:10.278Z",7,12,408,34]