[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-21-12-Web%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":604,"perPage":605,"totalItems":606,"totalPages":607},[5,76,121,174,219,264,314,360,413,458,505,543],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":72,"published_at":73,"school_blog":68,"short_description":74,"title":6,"updated":75,"slug":69,"views":71},"EP.66 การใช้ Golang ร่วมกับ JSON Web Tokens (JWT) เพื่อจัดการกับระบบการยืนยันตัวตน (Authentication)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F5p8k7lxxm75o9vs\u002F103_11zon_i57wahmqet.webp","2026-03-04 08:48:16.101Z",{"keywords":10,"locale":39,"school_blog":49},[11,19,24,29,34],{"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:42.406Z","76qprkevbgfdps8","julxx94rca568ku","WebSocket Authentication","2026-06-07 06:46:37.674Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:48:14.773Z","rvtg1ba2zbmb32s","การจัดการผู้ใช้ด้วย JWT","2026-06-07 06:47:45.712Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:48:15.037Z","sl8wru9sz7m3so7","การสร้าง JWT Token","2026-06-07 06:47:45.892Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:48:15.405Z","7fgg8b58kbl6ytw","การใช้ JWT ใน Golang","2026-06-07 06:47:45.979Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:48:15.762Z","b4d6q368ip2h0yk","การยืนยันตัวตน WebSocket","2026-06-07 06:47:46.089Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},"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":50,"collectionId":51,"collectionName":52,"created":53,"expand":54,"id":68,"slug":69,"updated":70,"views":71},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs","",{"category":55},{"blogIds":56,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":62,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"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":63,"th":63},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-06-07 06:45:03.856Z","hhnqut20vjry7wq","golang-jwt-authentication-websocket","2026-07-01 13:07:31.201Z",295,"5p8k7lxxm75o9vs","2025-07-14 02:26:48.849Z","เรียนรู้วิธีการใช้ JSON Web Tokens (JWT) ใน Golang เพื่อสร้างระบบการยืนยันตัวตน (Authentication) ที่ปลอดภัยและมีประสิทธิภาพใน WebSocket Chat.","2026-06-07 06:44:06.840Z",{"alt":77,"cover_image_path":78,"created":79,"expand":80,"id":117,"published_at":118,"school_blog":113,"short_description":119,"title":77,"updated":120,"slug":114,"views":116},"EP.65 การเพิ่มระบบการกรองข้อความ (Message Filtering) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fowswelxoepoj0gp\u002F101_11zon_ubulw3ja7c.webp","2026-03-04 08:48:19.424Z",{"keywords":81,"locale":107,"school_blog":108},[82,87,92,97,102],{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"updated_by":15},"2026-03-04 08:48:16.599Z","y6kdl4lnz3i5bvr","การกรองข้อความ WebSocket","2026-06-07 06:47:46.523Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-04 08:48:17.031Z","rsowsqhsifxpoot","ระบบกรองข้อความในห้องแชท","2026-06-07 06:47:46.906Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},"2026-03-04 08:48:17.744Z","y1hhfhr6r33nblh","การจัดการเนื้อหาห้องแชท","2026-06-07 06:47:47.105Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:48:18.475Z","n26sxfz2d595rjk","การกรองคำต้องห้าม WebSocket","2026-06-07 06:47:47.398Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-04 08:48:19.163Z","pmillzex6emosd6","ความปลอดภัยใน WebSocket Chat","2026-06-07 06:47:47.725Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":109,"id":113,"slug":114,"updated":115,"views":116},{"category":110},{"blogIds":111,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":112,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"h7yv6ksm6bs53t7","message-filtering-websocket-chat","2026-05-12 15:16:58.963Z",232,"owswelxoepoj0gp","2025-07-09 03:16:44.566Z","เรียนรู้วิธีเพิ่ม ระบบการกรองข้อความ (Message Filtering) ใน WebSocket Chat เพื่อให้สามารถกรองข้อความที่ไม่เหมาะสมและควบคุมเนื้อหาของการสนทนาในห้องแชทแบบเรียลไทม์!","2026-06-07 06:44:07.223Z",{"alt":122,"cover_image_path":123,"created":124,"expand":125,"id":170,"published_at":171,"school_blog":166,"short_description":172,"title":122,"updated":173,"slug":167,"views":169},"JS2GO EP.1 เริ่มต้นจาก JavaScript สู่ Go: พื้นฐานที่นักพัฒนาควรรู้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F98ivm3wc65qcnhf\u002F1_11zon_8_0l0qr2f0kr.webp","2026-03-04 08:27:18.718Z",{"keywords":126,"locale":152,"school_blog":153},[127,132,137,142,147],{"collectionId":12,"collectionName":13,"created":128,"created_by":15,"id":129,"name":130,"updated":131,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"collectionId":12,"collectionName":13,"created":133,"created_by":15,"id":134,"name":135,"updated":136,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":138,"created_by":15,"id":139,"name":140,"updated":141,"updated_by":15},"2026-03-04 08:27:13.612Z","xk01lchy9wnxndd","เริ่มต้นจาก JavaScript สู่ Go","2026-06-07 06:45:23.587Z",{"collectionId":12,"collectionName":13,"created":143,"created_by":15,"id":144,"name":145,"updated":146,"updated_by":15},"2026-03-04 08:27:15.893Z","keubtbdqa4mblx3","การพัฒนาโปรแกรม","2026-06-07 06:45:23.759Z",{"collectionId":12,"collectionName":13,"created":148,"created_by":15,"id":149,"name":150,"updated":151,"updated_by":15},"2026-03-04 08:27:00.374Z","3zxor15qr0d9g3v","Go สำหรับนักพัฒนา","2026-06-07 06:45:22.252Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":154,"collectionId":51,"collectionName":52,"created":53,"expand":155,"id":166,"slug":167,"updated":168,"views":169},"hsa1afr8fcnd6qb",{"category":156},{"blogIds":157,"collectionId":57,"collectionName":58,"created":158,"created_by":15,"id":154,"image":159,"image_alt":53,"image_path":160,"label":161,"name":162,"priority":163,"publish_at":164,"scheduled_at":53,"status":66,"updated":165,"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":162,"th":162},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-06-07 06:45:02.240Z","5ejyd23037m1tc0","from-javascript-to-go","2026-06-27 15:25:39.185Z",418,"98ivm3wc65qcnhf","2025-07-08 08:29:27.354Z","เรียนรู้พื้นฐานของภาษา JavaScript และ Go รวมถึงความแตกต่างที่สำคัญในเชิงการใช้งานและการออกแบบ","2026-06-07 06:42:52.541Z",{"alt":175,"cover_image_path":176,"created":177,"expand":178,"id":215,"published_at":216,"school_blog":211,"short_description":217,"title":175,"updated":218,"slug":212,"views":214},"EP.64 การจัดการข้อผิดพลาด (Error Handling) ใน WebSocket Server ด้วย Golang","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fgi64nuyuuxt3p9o\u002F99_11zon_se0u83rzme.webp","2026-03-04 08:48:22.352Z",{"keywords":179,"locale":205,"school_blog":206},[180,185,190,195,200],{"collectionId":12,"collectionName":13,"created":181,"created_by":15,"id":182,"name":183,"updated":184,"updated_by":15},"2026-03-04 08:48:20.221Z","rdq8ziks7d5ow1m","การจัดการข้อผิดพลาด WebSocket","2026-06-07 06:47:48.294Z",{"collectionId":12,"collectionName":13,"created":186,"created_by":15,"id":187,"name":188,"updated":189,"updated_by":15},"2026-03-04 08:48:20.425Z","kssyg088tiyq272","ข้อผิดพลาดใน WebSocket Server","2026-06-07 06:47:48.512Z",{"collectionId":12,"collectionName":13,"created":191,"created_by":15,"id":192,"name":193,"updated":194,"updated_by":15},"2026-03-04 08:48:20.723Z","bxlg7joxteer1is","การจัดการข้อผิดพลาด Golang","2026-06-07 06:47:48.675Z",{"collectionId":12,"collectionName":13,"created":196,"created_by":15,"id":197,"name":198,"updated":199,"updated_by":15},"2026-03-04 08:48:21.368Z","k867kcg5z7u4rjp","ข้อผิดพลาดในการเชื่อมต่อ WebSocket","2026-06-07 06:47:48.998Z",{"collectionId":12,"collectionName":13,"created":201,"created_by":15,"id":202,"name":203,"updated":204,"updated_by":15},"2026-03-04 08:48:21.972Z","nmwh840qvis4a64","การจัดการข้อผิดพลาด Golang WebSocket","2026-06-07 06:47:49.234Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":207,"id":211,"slug":212,"updated":213,"views":214},{"category":208},{"blogIds":209,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":210,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"iotx8smkq7kievo","error-handling-websocket-server-golang","2026-06-28 04:15:00.939Z",248,"gi64nuyuuxt3p9o","2025-07-08 02:20:58.486Z","เรียนรู้วิธีการ จัดการข้อผิดพลาด (Error Handling) ใน WebSocket Server ด้วย Golang เพื่อให้ระบบ WebSocket ของเรามีความทนทานต่อข้อผิดพลาดและสามารถจัดการกับข้อผิดพลาดที่เกิดขึ้นได้อย่างมีประสิทธิภาพ!","2026-06-07 06:44:07.514Z",{"alt":220,"cover_image_path":221,"created":222,"expand":223,"id":260,"published_at":261,"school_blog":256,"short_description":262,"title":220,"updated":263,"slug":257,"views":259},"EP.63 การสร้างระบบการจัดการสิทธิ์ผู้ใช้ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2gwfq2275r6hr9k\u002F97_11zon_41oejpzl4i.webp","2026-03-04 08:48:24.186Z",{"keywords":224,"locale":250,"school_blog":251},[225,230,235,240,245],{"collectionId":12,"collectionName":13,"created":226,"created_by":15,"id":227,"name":228,"updated":229,"updated_by":15},"2026-03-04 08:48:22.358Z","rbxqkotli2tzkw2","WebSocket user permissions","2026-06-07 06:47:49.480Z",{"collectionId":12,"collectionName":13,"created":231,"created_by":15,"id":232,"name":233,"updated":234,"updated_by":15},"2026-03-04 08:48:22.909Z","tdnmoovlsx9cmf5","การควบคุมการเข้าถึงใน WebSocket","2026-06-07 06:47:49.673Z",{"collectionId":12,"collectionName":13,"created":236,"created_by":15,"id":237,"name":238,"updated":239,"updated_by":15},"2026-03-04 08:48:20.967Z","f35nlft1zjh1jx6","WebSocket chat room management","2026-06-07 06:47:48.777Z",{"collectionId":12,"collectionName":13,"created":241,"created_by":15,"id":242,"name":243,"updated":244,"updated_by":15},"2026-03-04 08:48:23.484Z","t0xhrzfym8c9lrk","ระบบการจัดการสิทธิ์ผู้ใช้","2026-06-07 06:47:50.045Z",{"collectionId":12,"collectionName":13,"created":246,"created_by":15,"id":247,"name":248,"updated":249,"updated_by":15},"2026-03-04 08:48:23.857Z","gc4dfxrgudrlnpj","การจัดการสิทธิ์ผู้ใช้ WebSocket","2026-06-07 06:47:50.127Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":252,"id":256,"slug":257,"updated":258,"views":259},{"category":253},{"blogIds":254,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":255,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"npnnilm5hzza4cb","user-permissions-management-websocket-chat","2026-06-14 00:24:39.561Z",247,"2gwfq2275r6hr9k","2025-07-07 11:12:03.801Z","เรียนรู้วิธีการสร้าง ระบบการจัดการสิทธิ์ผู้ใช้ ใน WebSocket Chat เพื่อให้สามารถกำหนดสิทธิ์การเข้าถึงและการทำงานภายในห้องแชทได้อย่างมีประสิทธิภาพ!","2026-06-07 06:44:07.609Z",{"alt":265,"cover_image_path":266,"created":267,"expand":268,"id":310,"published_at":311,"school_blog":306,"short_description":312,"title":265,"updated":313,"slug":307,"views":309},"EP.62 การใช้ Context ใน Golang เพื่อจัดการกับการทำงานที่มีการรอคอย (concurrent tasks)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F2hovbk2n1ieorle\u002F95_11zon_2nl6eg2jiv.webp","2026-03-04 08:48:26.956Z",{"keywords":269,"locale":300,"school_blog":301},[270,275,280,285,290,295],{"collectionId":12,"collectionName":13,"created":271,"created_by":15,"id":272,"name":273,"updated":274,"updated_by":15},"2026-03-04 08:48:25.439Z","n9r2r9xc1xok70g","การทำงานพร้อมกันใน Golang","2026-06-07 06:47:50.878Z",{"collectionId":12,"collectionName":13,"created":276,"created_by":15,"id":277,"name":278,"updated":279,"updated_by":15},"2026-03-04 08:48:25.812Z","sjjiyydh2zn4mjm","การตั้งเวลาใน Golang","2026-06-07 06:47:51.094Z",{"collectionId":12,"collectionName":13,"created":281,"created_by":15,"id":282,"name":283,"updated":284,"updated_by":15},"2026-03-04 08:48:26.008Z","5buf2ifq8tf997e","การยกเลิกงานใน Golang","2026-06-07 06:47:51.234Z",{"collectionId":12,"collectionName":13,"created":286,"created_by":15,"id":287,"name":288,"updated":289,"updated_by":15},"2026-03-04 08:48:26.308Z","n84ea80h1lx8ntq","การจัดการ concurrent tasks ใน Golang","2026-06-07 06:47:51.374Z",{"collectionId":12,"collectionName":13,"created":291,"created_by":15,"id":292,"name":293,"updated":294,"updated_by":15},"2026-03-04 08:48:24.452Z","6295poaan1deg78","Concurrent tasks Golang","2026-06-07 06:47:50.395Z",{"collectionId":12,"collectionName":13,"created":296,"created_by":15,"id":297,"name":298,"updated":299,"updated_by":15},"2026-03-04 08:48:24.249Z","itgw0smx0evk3u7","Golang context","2026-06-07 06:47:50.276Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":302,"id":306,"slug":307,"updated":308,"views":309},{"category":303},{"blogIds":304,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":305,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"bji62kx3jye65h3","context-golang-concurrent-tasks","2026-06-24 00:57:40.698Z",262,"2hovbk2n1ieorle","2025-07-07 03:34:27.384Z","เรียนรู้วิธีการใช้ Context ใน Golang เพื่อจัดการกับการทำงานที่มีการรอคอย และควบคุมการทำงานของหลายๆ task (concurrent tasks) ได้อย่างมีประสิทธิภาพ","2026-06-07 06:44:08.075Z",{"alt":315,"cover_image_path":316,"created":317,"expand":318,"id":356,"published_at":357,"school_blog":352,"short_description":358,"title":315,"updated":359,"slug":353,"views":355},"EP.61 การสร้างระบบการจัดการห้องแชท (Chat Room Management) ใน WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fsbikbcb3r3ck71s\u002F93_11zon_tap28zzmaz.webp","2026-03-04 08:48:27.822Z",{"keywords":319,"locale":346,"school_blog":347},[320,325,330,335,340,345],{"collectionId":12,"collectionName":13,"created":321,"created_by":15,"id":322,"name":323,"updated":324,"updated_by":15},"2026-03-04 08:48:27.456Z","6apcqgw22qzbwor","WebSocket chat rooms","2026-06-07 06:47:51.886Z",{"collectionId":12,"collectionName":13,"created":326,"created_by":15,"id":327,"name":328,"updated":329,"updated_by":15},"2026-03-04 08:48:27.193Z","rpe7cuieidlcx80","Chat room management WebSocket","2026-06-07 06:47:51.787Z",{"collectionId":12,"collectionName":13,"created":331,"created_by":15,"id":332,"name":333,"updated":334,"updated_by":15},"2026-03-04 08:48:26.832Z","ke2vgz3360nnxdd","Multi-user WebSocket chat","2026-06-07 06:47:51.708Z",{"collectionId":12,"collectionName":13,"created":336,"created_by":15,"id":337,"name":338,"updated":339,"updated_by":15},"2026-03-04 08:48:26.531Z","fkyqvsheo2jrtgp","Real-time group messaging","2026-06-07 06:47:51.571Z",{"collectionId":12,"collectionName":13,"created":341,"created_by":15,"id":342,"name":343,"updated":344,"updated_by":15},"2026-03-04 08:48:23.275Z","1i0dr53eb0gzopq","WebSocket app development","2026-06-07 06:47:49.833Z",{"collectionId":12,"collectionName":13,"created":133,"created_by":15,"id":134,"name":135,"updated":136,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":348,"id":352,"slug":353,"updated":354,"views":355},{"category":349},{"blogIds":350,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":351,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"6sy7p461buh2px1","chat-room-management-websocket","2026-06-10 07:35:07.174Z",245,"sbikbcb3r3ck71s","2025-07-04 04:17:26.373Z","เรียนรู้วิธีการสร้างระบบ การจัดการห้องแชท ใน WebSocket เพื่อให้ผู้ใช้สามารถสร้าง, เข้าร่วม และจัดการห้องแชทของตัวเองได้อย่างมีประสิทธิภาพ","2026-06-07 06:44:08.316Z",{"alt":361,"cover_image_path":362,"created":363,"expand":364,"id":409,"published_at":410,"school_blog":405,"short_description":411,"title":361,"updated":412,"slug":406,"views":408},"สิ่งที่โปรแกรมเมอร์ต้องรู้เมื่อร่วมงานกับนักพัฒนาคนอื่น","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Feh0boef2ouen4y5\u002F4_1_11zon_v2doxn6yf0.webp","2026-03-04 08:48:05.607Z",{"keywords":365,"locale":391,"school_blog":392},[366,371,376,381,386],{"collectionId":12,"collectionName":13,"created":367,"created_by":15,"id":368,"name":369,"updated":370,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-06-07 06:45:20.920Z",{"collectionId":12,"collectionName":13,"created":372,"created_by":15,"id":373,"name":374,"updated":375,"updated_by":15},"2026-03-04 08:31:28.352Z","5o4lizrab3l8t7r","การพัฒนาซอฟต์แวร์","2026-06-07 06:45:26.911Z",{"collectionId":12,"collectionName":13,"created":377,"created_by":15,"id":378,"name":379,"updated":380,"updated_by":15},"2026-03-04 08:48:04.381Z","8ggen5huxjywzwd","การทำงานในทีม","2026-06-07 06:47:41.355Z",{"collectionId":12,"collectionName":13,"created":382,"created_by":15,"id":383,"name":384,"updated":385,"updated_by":15},"2026-03-04 08:48:04.682Z","mozura0vqyj9klh","การสื่อสารในทีม","2026-06-07 06:47:41.606Z",{"collectionId":12,"collectionName":13,"created":387,"created_by":15,"id":388,"name":389,"updated":390,"updated_by":15},"2026-03-04 08:48:05.051Z","beqc1umxq41zbug","การทำงานร่วมกัน","2026-06-07 06:47:41.743Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":393,"collectionId":51,"collectionName":52,"created":53,"expand":394,"id":405,"slug":406,"updated":407,"views":408},"spm4l1k5bgmhmmt",{"category":395},{"blogIds":396,"collectionId":57,"collectionName":58,"created":397,"created_by":15,"id":393,"image":398,"image_alt":53,"image_path":399,"label":400,"name":401,"priority":402,"publish_at":403,"scheduled_at":53,"status":66,"updated":404,"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":401,"th":401},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","bbaz039n31dqhpt","what-programmers-need-to-know-when-working-in-a-team","2026-05-13 17:22:05.375Z",238,"eh0boef2ouen4y5","2025-07-03 10:05:24.576Z","การทำงานร่วมกันในทีมโปรแกรมเมอร์เป็นสิ่งสำคัญในการพัฒนาซอฟต์แวร์ที่มีคุณภาพ โปรแกรมเมอร์ต้องรู้ถึงการสื่อสารที่ดี การใช้เครื่องมือที่เหมาะสม และการประสานงานกับนักพัฒนาคนอื่น ๆ เพื่อให้โปรเจกต์สำเร็จได้อย่างมีประสิทธิภาพ","2026-06-07 06:44:05.324Z",{"alt":414,"cover_image_path":415,"created":416,"expand":417,"id":454,"published_at":455,"school_blog":450,"short_description":456,"title":414,"updated":457,"slug":451,"views":453},"การเขียนโค้ดให้ปลอดภัย: เทคนิคการป้องกันการโจมตีในเว็บแอป","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F00taha79oekar8v\u002F6_1_11zon_ncoinjk5m4.webp","2026-03-04 08:47:59.171Z",{"keywords":418,"locale":444,"school_blog":445},[419,424,429,434,439],{"collectionId":12,"collectionName":13,"created":420,"created_by":15,"id":421,"name":422,"updated":423,"updated_by":15},"2026-03-04 08:47:56.208Z","g2ivs7fr27gyvb0","ป้องกันการโจมตีในเว็บแอป","2026-06-07 06:47:38.237Z",{"collectionId":12,"collectionName":13,"created":425,"created_by":15,"id":426,"name":427,"updated":428,"updated_by":15},"2026-03-04 08:47:56.726Z","d3teeodb0259ttw","การเขียนโค้ดที่ปลอดภัย","2026-06-07 06:47:38.560Z",{"collectionId":12,"collectionName":13,"created":430,"created_by":15,"id":431,"name":432,"updated":433,"updated_by":15},"2026-03-04 08:47:57.420Z","hnstpdm2t5fp52m","การป้องกัน SQL Injection","2026-06-07 06:47:38.865Z",{"collectionId":12,"collectionName":13,"created":435,"created_by":15,"id":436,"name":437,"updated":438,"updated_by":15},"2026-03-04 08:47:57.843Z","ezs53k4e8t7cl20","การป้องกัน XSS","2026-06-07 06:47:39.165Z",{"collectionId":12,"collectionName":13,"created":440,"created_by":15,"id":441,"name":442,"updated":443,"updated_by":15},"2026-03-04 08:47:58.624Z","prhojme9tcdxytz","ความปลอดภัยในเว็บแอป","2026-06-07 06:47:39.518Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":393,"collectionId":51,"collectionName":52,"created":53,"expand":446,"id":450,"slug":451,"updated":452,"views":453},{"category":447},{"blogIds":448,"collectionId":57,"collectionName":58,"created":397,"created_by":15,"id":393,"image":398,"image_alt":53,"image_path":399,"label":449,"name":401,"priority":402,"publish_at":403,"scheduled_at":53,"status":66,"updated":404,"updated_by":15},[],{"en":401,"th":401},"bzlral8xaidart1","secure-coding-techniques-to-prevent-web-app-attacks","2026-05-13 17:13:15.679Z",285,"00taha79oekar8v","2025-07-03 09:51:00.281Z","เรียนรู้วิธีป้องกันการโจมตีในเว็บแอป เช่น SQL Injection, XSS, และการจัดการเซสชัน เพื่อเสริมสร้างความปลอดภัยให้กับเว็บแอปของคุณ","2026-06-07 06:44:04.370Z",{"alt":459,"cover_image_path":460,"created":461,"expand":462,"id":501,"published_at":502,"school_blog":497,"short_description":503,"title":459,"updated":504,"slug":498,"views":500},"How to ใช้ Git แบบมือโปร (แม้จะลืมคำสั่งบ่อย)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F601k82ytz0p9qsd\u002F1_1_11zon_ekpfrw2cvq.webp","2026-03-04 08:48:31.948Z",{"keywords":463,"locale":484,"school_blog":485},[464,469,474,479],{"collectionId":12,"collectionName":13,"created":465,"created_by":15,"id":466,"name":467,"updated":468,"updated_by":15},"2026-03-04 08:44:36.134Z","pg679bitpkii9vv","Git","2026-06-07 06:46:36.158Z",{"collectionId":12,"collectionName":13,"created":470,"created_by":15,"id":471,"name":472,"updated":473,"updated_by":15},"2026-03-04 08:48:30.465Z","16ep6861ritfhxp","การใช้งาน Git เบื้องต้น","2026-06-07 06:47:52.915Z",{"collectionId":12,"collectionName":13,"created":475,"created_by":15,"id":476,"name":477,"updated":478,"updated_by":15},"2026-03-04 08:48:31.026Z","vzru4ronm4s733d","Git สำหรับนักพัฒนา","2026-06-07 06:47:53.201Z",{"collectionId":12,"collectionName":13,"created":480,"created_by":15,"id":481,"name":482,"updated":483,"updated_by":15},"2026-03-04 08:48:31.602Z","7a7jvw6s2rs095k","การใช้งาน Git","2026-06-07 06:47:53.448Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":486,"collectionId":51,"collectionName":52,"created":53,"expand":487,"id":497,"slug":498,"updated":499,"views":500},"qn0d7xwatkleou1",{"category":488},{"blogIds":489,"collectionId":57,"collectionName":58,"created":490,"created_by":15,"id":486,"image":491,"image_alt":53,"image_path":492,"label":493,"name":494,"priority":402,"publish_at":495,"scheduled_at":53,"status":66,"updated":496,"updated_by":15},[],"2026-03-04 08:31:21.896Z","4jn5ccty4x9_2894s1fj97.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fqn0d7xwatkleou1\u002F4jn5ccty4x9_2894s1fj97.png",{"en":494,"th":494},"How to","2025-02-04 08:40:59.666Z","2026-06-07 06:45:02.619Z","4eze8z99a7v1zz2","how-to-git-like-a-pro-even-when-you-forget","2026-06-23 04:38:57.491Z",328,"601k82ytz0p9qsd","2025-07-03 02:27:35.085Z","ลืมคำสั่ง Git บ่อยไม่ใช่ปัญหา! บทความนี้จะพาคุณเข้าใจแนวคิด วิธีคิด และเทคนิคการใช้ Git แบบมืออาชีพ ที่ไม่ต้องพิมพ์คล่องก็ใช้คล่องได้","2026-06-07 06:44:09.107Z",{"alt":506,"cover_image_path":507,"created":508,"expand":509,"id":539,"published_at":540,"school_blog":535,"short_description":541,"title":506,"updated":542,"slug":536,"views":538},"EP.60 การเพิ่มฟีเจอร์การแชทแบบกลุ่ม (Group Chat) ใน WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fk7kes7hshgxn4fp\u002F91_11zon_81s7dvjfs5.webp","2026-03-04 08:48:28.973Z",{"keywords":510,"locale":529,"school_blog":530},[511,512,517,518,519,524],{"collectionId":12,"collectionName":13,"created":133,"created_by":15,"id":134,"name":135,"updated":136,"updated_by":15},{"collectionId":12,"collectionName":13,"created":513,"created_by":15,"id":514,"name":515,"updated":516,"updated_by":15},"2026-03-04 08:48:28.330Z","kr1413m4fzwuc0h","Multi-user chat WebSocket","2026-06-07 06:47:52.313Z",{"collectionId":12,"collectionName":13,"created":336,"created_by":15,"id":337,"name":338,"updated":339,"updated_by":15},{"collectionId":12,"collectionName":13,"created":321,"created_by":15,"id":322,"name":323,"updated":324,"updated_by":15},{"collectionId":12,"collectionName":13,"created":520,"created_by":15,"id":521,"name":522,"updated":523,"updated_by":15},"2026-03-04 08:48:28.118Z","mke46zb9cmeoi7c","Group chat WebSocket","2026-06-07 06:47:52.184Z",{"collectionId":12,"collectionName":13,"created":525,"created_by":15,"id":526,"name":527,"updated":528,"updated_by":15},"2026-03-04 08:48:27.886Z","ymx9t9j2b8g259k","WebSocket group chat","2026-06-07 06:47:52.003Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":531,"id":535,"slug":536,"updated":537,"views":538},{"category":532},{"blogIds":533,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":534,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"9f3tyn59u5noidm","group-chat-websocket","2026-06-24 22:16:23.047Z",259,"k7kes7hshgxn4fp","2025-07-02 02:20:18.502Z","เรียนรู้วิธีเพิ่มฟีเจอร์การแชทแบบกลุ่ม (Group Chat) ใน WebSocket เพื่อให้ผู้ใช้สามารถเข้าร่วมแชทกลุ่มและส่งข้อความในกลุ่มผ่าน WebSocket","2026-06-07 06:44:08.801Z",{"alt":544,"cover_image_path":545,"created":546,"expand":547,"id":600,"published_at":601,"school_blog":596,"short_description":602,"title":544,"updated":603,"slug":597,"views":599},"EP.59 การทำให้ WebSocket Server รองรับการสเกล (Scalability) ด้วย Redis","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fg6sooep7we6bwc0\u002F89_11zon_pwaaovzod7.webp","2026-03-04 08:48:36.170Z",{"keywords":548,"locale":590,"school_blog":591},[549,554,559,564,569,574,579,584,585],{"collectionId":12,"collectionName":13,"created":550,"created_by":15,"id":551,"name":552,"updated":553,"updated_by":15},"2026-03-04 08:48:01.927Z","vcknw4qrrifzlfg","WebSocket scalability","2026-06-07 06:47:40.736Z",{"collectionId":12,"collectionName":13,"created":555,"created_by":15,"id":556,"name":557,"updated":558,"updated_by":15},"2026-03-04 08:48:33.630Z","0ywh76lu4wdls2m","Redis WebSocket","2026-06-07 06:47:54.311Z",{"collectionId":12,"collectionName":13,"created":560,"created_by":15,"id":561,"name":562,"updated":563,"updated_by":15},"2026-03-04 08:48:32.974Z","eisfqhcev64quw9","scalable WebSocket server","2026-06-07 06:47:54.054Z",{"collectionId":12,"collectionName":13,"created":565,"created_by":15,"id":566,"name":567,"updated":568,"updated_by":15},"2026-03-04 08:48:32.209Z","48y556uc6leq7y0","real-time chat WebSocket","2026-06-07 06:47:53.735Z",{"collectionId":12,"collectionName":13,"created":570,"created_by":15,"id":571,"name":572,"updated":573,"updated_by":15},"2026-03-04 08:48:31.837Z","ahb1ycvssncgam5","WebSocket chat app","2026-06-07 06:47:53.603Z",{"collectionId":12,"collectionName":13,"created":575,"created_by":15,"id":576,"name":577,"updated":578,"updated_by":15},"2026-03-04 08:48:05.655Z","jbilbz5mzbvhi7v","WebSocket performance","2026-06-07 06:47:41.927Z",{"collectionId":12,"collectionName":13,"created":580,"created_by":15,"id":581,"name":582,"updated":583,"updated_by":15},"2026-03-04 08:48:31.334Z","mc8i2g75noi47kf","Redis chat app","2026-06-07 06:47:53.307Z",{"collectionId":12,"collectionName":13,"created":133,"created_by":15,"id":134,"name":135,"updated":136,"updated_by":15},{"collectionId":12,"collectionName":13,"created":586,"created_by":15,"id":587,"name":588,"updated":589,"updated_by":15},"2026-03-04 08:48:30.822Z","9oaikj2kr22tbp3","server scaling","2026-06-07 06:47:53.046Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":592,"id":596,"slug":597,"updated":598,"views":599},{"category":593},{"blogIds":594,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":595,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"mlvpzlynlgvljj8","scalability-websocket-redis","2026-07-01 01:12:42.572Z",371,"g6sooep7we6bwc0","2025-07-01 04:30:02.627Z","เรียนรู้วิธีทำให้ WebSocket Server รองรับการสเกล (scalability) โดยใช้ Redis เพื่อจัดการกับการเชื่อมต่อจำนวนมากและเพิ่มประสิทธิภาพในการส่งข้อมูลในห้องแชท","2026-06-07 06:44:09.832Z",21,12,438,37]