[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-28-12-Golang%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520The%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Series-all-all-createdAt:desc-default":3},{"data":4,"page":527,"perPage":528,"totalItems":529,"totalPages":530},[5,66,139,176,216,257,298,334,366,407,448,489],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":62,"published_at":63,"school_blog":58,"short_description":64,"title":6,"updated":65,"slug":59,"views":61},"เจาะลึกอาชีพโปรแกรมเมอร์: รายได้ ความท้าทาย และโอกาส","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fesuto8uoa0s7ja1\u002F1hl9quhrqym_5yfbm76wo0.webp","2026-03-04 08:50:45.244Z",{"keywords":10,"locale":29,"school_blog":39},[11,19,24],{"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:31:34.079Z","76qprkevbgfdps8","2urj6up6a2vz9dl","อาชีพโปรแกรมเมอร์","2026-06-07 06:45:28.659Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:47:05.116Z","imh6wru2aicre8g","รายได้โปรแกรมเมอร์","2026-06-07 06:47:19.242Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-06-07 06:45:20.920Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},"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":40,"collectionId":41,"collectionName":42,"created":43,"expand":44,"id":58,"slug":59,"updated":60,"views":61},"spm4l1k5bgmhmmt","pbc_2105096300","school_blogs","",{"category":45},{"blogIds":46,"collectionId":47,"collectionName":48,"created":49,"created_by":15,"id":40,"image":50,"image_alt":43,"image_path":51,"label":52,"name":53,"priority":54,"publish_at":55,"scheduled_at":43,"status":56,"updated":57,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":53,"th":53},"Knowledge",0,"2026-03-18 02:25:41.222Z","published","2026-06-07 06:45:02.533Z","cat41woyd720wq0","programmer-career-salary-challenges-opportunities","2026-05-26 07:19:40.970Z",279,"esuto8uoa0s7ja1","2025-03-25 09:05:00.841Z","บทความนี้เจาะลึกเกี่ยวกับอาชีพโปรแกรมเมอร์ รวมถึงโอกาสในการเติบโต รายได้เฉลี่ย และความท้าทายที่ต้องเผชิญ","2026-06-07 06:44:33.289Z",{"alt":67,"cover_image_path":68,"created":69,"expand":70,"id":135,"published_at":136,"school_blog":131,"short_description":137,"title":67,"updated":138,"slug":132,"views":134},"EP.50 การเพิ่มฟีเจอร์แก้ไขข้อความที่ส่งไปแล้วใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Femy42c6e8mqq1ta\u002F71_11zon_pzt58ggj2n.webp","2026-03-04 08:50:52.096Z",{"keywords":71,"locale":117,"school_blog":118},[72,77,82,87,92,97,102,107,112],{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},"2026-03-04 08:50:49.558Z","8lxakhujb04wz6u","Chat UX","2026-06-07 06:48:41.016Z",{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},"2026-03-04 08:50:49.965Z","ga8fw2l8y3mxjxg","Persistent Chat","2026-06-07 06:48:41.194Z",{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"updated_by":15},"2026-03-04 08:50:50.174Z","8ljxv7icboyb1nk","Modify Messages","2026-06-07 06:48:41.417Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-04 08:48:07.088Z","brfbypclggbbkcx","WebSocket API","2026-06-07 06:47:42.485Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},"2026-03-04 08:47:05.949Z","caufix9o52uw4bh","Real-Time Chat","2026-06-07 06:47:19.595Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"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-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":113,"created_by":15,"id":114,"name":115,"updated":116,"updated_by":15},"2026-03-04 08:50:50.586Z","alqe9fvdyvhi443","Edit Messages","2026-06-07 06:48:41.544Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":120,"id":131,"slug":132,"updated":133,"views":134},"wqxt7ag2gn7xcmk",{"category":121},{"blogIds":122,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":126,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"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":127,"th":127},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","4kh1u0t6ya71oyk","edit-messages-websocket-chat","2026-05-26 19:48:24.909Z",252,"emy42c6e8mqq1ta","2025-03-24 01:52:42.656Z","เรียนรู้วิธีเพิ่ม ฟีเจอร์แก้ไขข้อความ (Edit Messages) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถแก้ไขข้อความที่ส่งไปแล้ว และอัปเดตผลลัพธ์แบบเรียลไทม์ให้กับผู้ใช้ทุกคนในห้องแชท","2026-06-07 06:44:35.001Z",{"alt":140,"cover_image_path":141,"created":142,"expand":143,"id":172,"published_at":173,"school_blog":168,"short_description":174,"title":140,"updated":175,"slug":169,"views":171},"EP.49 การเพิ่มฟีเจอร์ลบข้อความที่ส่งไปแล้วใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fhpw4iykv94fpouk\u002F69_11zon_5awtjth4f1.webp","2026-03-04 08:50:52.847Z",{"keywords":144,"locale":162,"school_blog":163},[145,146,147,152,153,154,155,156,157],{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":148,"created_by":15,"id":149,"name":150,"updated":151,"updated_by":15},"2026-03-04 08:50:50.858Z","mt8vm4xyendwvlb","Remove Messages","2026-06-07 06:48:41.680Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":158,"created_by":15,"id":159,"name":160,"updated":161,"updated_by":15},"2026-03-04 08:48:51.522Z","2jlqt2u73fp1rx3","Delete Messages","2026-06-07 06:48:00.526Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":164,"id":168,"slug":169,"updated":170,"views":171},{"category":165},{"blogIds":166,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":167,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"7t2sb10oxkgbs84","delete-messages-websocket-chat","2026-05-17 10:25:18.339Z",226,"hpw4iykv94fpouk","2025-03-24 01:52:33.217Z","เรียนรู้วิธีเพิ่ม ฟีเจอร์ลบข้อความ (Delete Messages) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถลบข้อความที่เคยส่งไปแล้ว และอัปเดตผลลัพธ์แบบเรียลไทม์ให้กับผู้ใช้ทุกคนในห้องแชท","2026-06-07 06:44:35.125Z",{"alt":177,"cover_image_path":178,"created":179,"expand":180,"id":212,"published_at":213,"school_blog":209,"short_description":214,"title":177,"updated":215,"slug":210,"views":134},"EP.48 การเพิ่มระบบแสดงประวัติการแชทย้อนหลังใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fbay4cv3ovysfubc\u002F67_11zon_40uw6qepjd.webp","2026-03-04 08:50:53.512Z",{"keywords":181,"locale":203,"school_blog":204},[182,187,188,193,194,195,196,197,198],{"collectionId":12,"collectionName":13,"created":183,"created_by":15,"id":184,"name":185,"updated":186,"updated_by":15},"2026-03-04 08:50:52.953Z","aqepcyhdmag8vg4","Chat Storage","2026-06-07 06:48:41.758Z",{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"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:48:39.993Z","cvqrwxwzdsgoz1u","Message History","2026-06-07 06:47:56.716Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":199,"created_by":15,"id":200,"name":201,"updated":202,"updated_by":15},"2026-03-04 08:50:53.155Z","peza6kmj1144b0x","Chat History","2026-06-07 06:48:41.933Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":205,"id":209,"slug":210,"updated":211,"views":134},{"category":206},{"blogIds":207,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":208,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"7r6wz7gyf1n7sxd","chat-history-websocket-chat","2026-06-26 10:33:21.452Z","bay4cv3ovysfubc","2025-03-24 01:52:22.079Z","เรียนรู้วิธีเพิ่ม ระบบแสดงประวัติการแชทย้อนหลัง (Chat History) ใน WebSocket Chat โดยใช้ฐานข้อมูลและ GraphQL API เพื่อให้ผู้ใช้สามารถดูข้อความเก่าได้เมื่อเข้าสู่ระบบ","2026-06-07 06:44:35.293Z",{"alt":217,"cover_image_path":218,"created":219,"expand":220,"id":253,"published_at":254,"school_blog":249,"short_description":255,"title":217,"updated":256,"slug":250,"views":252},"EP.47 การเพิ่มฟีเจอร์โหมดห้ามรบกวน (Do Not Disturb Mode) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fl39f1av7k1eizbh\u002F65akfo46m73z_q8edvugcfk.webp","2026-03-04 08:50:54.947Z",{"keywords":221,"locale":243,"school_blog":244},[222,227,228,233,234,235,236,237,238],{"collectionId":12,"collectionName":13,"created":223,"created_by":15,"id":224,"name":225,"updated":226,"updated_by":15},"2026-03-04 08:50:53.623Z","k6w6fyr98usbg2e","Chat Notifications","2026-06-07 06:48:42.041Z",{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":229,"created_by":15,"id":230,"name":231,"updated":232,"updated_by":15},"2026-03-04 08:50:53.943Z","fq0pc95e767vuu8","DND Mode","2026-06-07 06:48:42.145Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":239,"created_by":15,"id":240,"name":241,"updated":242,"updated_by":15},"2026-03-04 08:50:54.150Z","z33apwtejt9t7zn","Do Not Disturb","2026-06-07 06:48:42.305Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":245,"id":249,"slug":250,"updated":251,"views":252},{"category":246},{"blogIds":247,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":248,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"44cnqqbaf4uf842","do-not-disturb-websocket-chat","2026-05-21 16:19:56.812Z",234,"l39f1av7k1eizbh","2025-03-24 01:52:08.698Z","เรียนรู้วิธีเพิ่ม โหมดห้ามรบกวน (Do Not Disturb Mode - DND) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถปิดการแจ้งเตือนชั่วคราว และไม่รับข้อความแจ้งเตือนระหว่างที่โหมดนี้เปิดใช้งาน","2026-06-07 06:44:35.669Z",{"alt":258,"cover_image_path":259,"created":260,"expand":261,"id":294,"published_at":295,"school_blog":290,"short_description":296,"title":258,"updated":297,"slug":291,"views":293},"EP.46 การเพิ่มฟีเจอร์กำหนดสถานะผู้ใช้ (Custom User Status) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fbgphqemqer6k6g1\u002F63k8w812lcsy_mrde1k2rf5.webp","2026-03-04 08:50:56.209Z",{"keywords":262,"locale":284,"school_blog":285},[263,268,269,274,275,276,277,278,279],{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},"2026-03-04 08:50:54.677Z","jgu82elfpwczlgf","Chat Presence","2026-06-07 06:48:42.440Z",{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":270,"created_by":15,"id":271,"name":272,"updated":273,"updated_by":15},"2026-03-04 08:50:54.934Z","95t6zz8cpdp1zpf","Custom Status","2026-06-07 06:48:42.604Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":280,"created_by":15,"id":281,"name":282,"updated":283,"updated_by":15},"2026-03-04 08:50:55.241Z","eftlak6vln9c1dc","User Status","2026-06-07 06:48:42.743Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":286,"id":290,"slug":291,"updated":292,"views":293},{"category":287},{"blogIds":288,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":289,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"a1tuyqqcw8tjoap","custom-user-status-websocket-chat","2026-06-03 10:14:33.628Z",230,"bgphqemqer6k6g1","2025-03-24 01:51:58.539Z","เรียนรู้วิธีเพิ่ม ระบบกำหนดสถานะผู้ใช้ (Custom User Status) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถตั้งสถานะ เช่น \"ออนไลน์\", \"ไม่ว่าง\", หรือ \"ออฟไลน์\" และอัปเดตสถานะแบบเรียลไทม์","2026-06-07 06:44:35.892Z",{"alt":299,"cover_image_path":300,"created":301,"expand":302,"id":330,"published_at":331,"school_blog":327,"short_description":332,"title":299,"updated":333,"slug":328,"views":252},"EP.45 การเพิ่มระบบแจ้งเตือนเมื่อมีผู้ใช้ใหม่เข้ามาใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Feu0h2r45625nipp\u002F61v19uv4p313_23zk7zajcm.webp","2026-03-04 08:50:57.925Z",{"keywords":303,"locale":321,"school_blog":322},[304,309,310,311,312,313,314,315,316],{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},"2026-03-04 08:50:55.786Z","bn9tuj0554z99gg","Active Users","2026-06-07 06:48:42.956Z",{"collectionId":12,"collectionName":13,"created":223,"created_by":15,"id":224,"name":225,"updated":226,"updated_by":15},{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"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":317,"created_by":15,"id":318,"name":319,"updated":320,"updated_by":15},"2026-03-04 08:50:56.096Z","pqk2xruvmm497x0","User Join Notification","2026-06-07 06:48:43.094Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":323,"id":327,"slug":328,"updated":329,"views":252},{"category":324},{"blogIds":325,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":326,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"ifugg17ps3z64cx","user-join-notification-websocket-chat","2026-06-09 19:26:39.641Z","eu0h2r45625nipp","2025-03-24 01:51:46.776Z","เรียนรู้วิธีเพิ่ม ระบบแจ้งเตือน (User Join Notification) เมื่อมีผู้ใช้ใหม่เข้ามาใน WebSocket Chat ทำให้ผู้ใช้ทุกคนสามารถรับรู้ได้ทันทีว่ามีผู้ใช้ใหม่เข้ามาในแชทแบบเรียลไทม์","2026-06-07 06:44:36.267Z",{"alt":335,"cover_image_path":336,"created":337,"expand":338,"id":362,"published_at":363,"school_blog":359,"short_description":364,"title":335,"updated":365,"slug":360,"views":361},"EP.44 การเพิ่มฟีเจอร์แสดงจำนวนผู้ใช้ที่ออนไลน์ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fxuf3om7s296u4xt\u002F59_11zon_k8duf0jpg3.webp","2026-03-04 08:50:58.885Z",{"keywords":339,"locale":353,"school_blog":354},[340,341,342,343,344,345,346,347,348],{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":349,"created_by":15,"id":350,"name":351,"updated":352,"updated_by":15},"2026-03-04 08:50:56.957Z","8fdbu2zxdum36wl","Online Users","2026-06-07 06:48:43.220Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":355,"id":359,"slug":360,"updated":43,"views":361},{"category":356},{"blogIds":357,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":358,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"o80z3drd0e40piv","online-users-websocket-chat",242,"xuf3om7s296u4xt","2025-03-24 01:51:35.026Z","เรียนรู้วิธีเพิ่ม ฟีเจอร์แสดงจำนวนผู้ใช้ที่ออนไลน์ (Active Users) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถเห็นจำนวนผู้ใช้งานที่กำลังออนไลน์อยู่ในระบบแบบเรียลไทม์","2026-06-07 06:44:36.666Z",{"alt":367,"cover_image_path":368,"created":369,"expand":370,"id":403,"published_at":404,"school_blog":399,"short_description":405,"title":367,"updated":406,"slug":400,"views":402},"EP.43 การเพิ่มฟีเจอร์ปักหมุดข้อความ (Pinned Messages) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ff4l95lly7crttk6\u002F57_11zon_ecoltakj2w.webp","2026-03-04 08:51:00.037Z",{"keywords":371,"locale":393,"school_blog":394},[372,377,378,383,384,385,386,387,388],{"collectionId":12,"collectionName":13,"created":373,"created_by":15,"id":374,"name":375,"updated":376,"updated_by":15},"2026-03-04 08:50:59.287Z","wg8gajk96i2keaj","Chat Management","2026-06-07 06:48:43.368Z",{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":379,"created_by":15,"id":380,"name":381,"updated":382,"updated_by":15},"2026-03-04 08:50:59.507Z","ntfm42v1phime84","Pinned Chats","2026-06-07 06:48:43.494Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":389,"created_by":15,"id":390,"name":391,"updated":392,"updated_by":15},"2026-03-04 08:48:45.418Z","so81vnxshuuiu6h","Pinned Messages","2026-06-07 06:47:58.782Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":395,"id":399,"slug":400,"updated":401,"views":402},{"category":396},{"blogIds":397,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":398,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"3ntbs0bnwdc7lq4","pinned-messages-websocket-chat","2026-05-28 09:55:58.155Z",257,"f4l95lly7crttk6","2025-03-24 01:51:23.344Z","เรียนรู้วิธีเพิ่ม ฟีเจอร์ปักหมุดข้อความ (Pinned Messages) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถเก็บข้อความสำคัญไว้ดูภายหลังได้ รองรับการแจ้งเตือนแบบเรียลไทม์เมื่อมีข้อความถูกปักหมุด","2026-06-07 06:44:36.772Z",{"alt":408,"cover_image_path":409,"created":410,"expand":411,"id":444,"published_at":445,"school_blog":440,"short_description":446,"title":408,"updated":447,"slug":441,"views":443},"EP.42 การเพิ่มฟีเจอร์ Read Receipts (การแจ้งเตือนว่าอ่านแล้ว) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fh5qf4hc6itxocuz\u002F55_11zon_l1yk5jt9ob.webp","2026-03-04 08:51:01.823Z",{"keywords":412,"locale":434,"school_blog":435},[413,414,419,424,425,426,427,428,429],{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":415,"created_by":15,"id":416,"name":417,"updated":418,"updated_by":15},"2026-03-04 08:50:59.960Z","up5egj6sjn2i72f","Chat Features","2026-06-07 06:48:43.652Z",{"collectionId":12,"collectionName":13,"created":420,"created_by":15,"id":421,"name":422,"updated":423,"updated_by":15},"2026-03-04 08:51:00.184Z","hnwyjmmf41r934k","Message Read Status","2026-06-07 06:48:43.788Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":430,"created_by":15,"id":431,"name":432,"updated":433,"updated_by":15},"2026-03-04 08:51:00.522Z","yqwzufwzpmf5p93","Read Receipts","2026-06-07 06:48:43.862Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":436,"id":440,"slug":441,"updated":442,"views":443},{"category":437},{"blogIds":438,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":439,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"q37y3cwja1kppep","read-receipts-websocket-chat","2026-05-13 06:56:17.808Z",233,"h5qf4hc6itxocuz","2025-03-24 01:51:09.074Z","เรียนรู้วิธีเพิ่ม Read Receipts (แจ้งเตือนว่าอ่านแล้ว) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถทราบได้ว่าข้อความที่ส่งไปได้รับการอ่านแล้วหรือไม่ โดยใช้ WebSocket และฐานข้อมูล","2026-06-07 06:44:37.146Z",{"alt":449,"cover_image_path":450,"created":451,"expand":452,"id":485,"published_at":486,"school_blog":481,"short_description":487,"title":449,"updated":488,"slug":482,"views":484},"EP.41 การเพิ่มฟีเจอร์แสดงสถานะการพิมพ์ (Typing Indicator) ใน WebSocket Chat","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ff0symmnhfpvutpu\u002F53_11zon_sdo62p0vh7.webp","2026-03-04 08:51:01.871Z",{"keywords":453,"locale":475,"school_blog":476},[454,455,460,461,466,467,468,469,470],{"collectionId":12,"collectionName":13,"created":73,"created_by":15,"id":74,"name":75,"updated":76,"updated_by":15},{"collectionId":12,"collectionName":13,"created":456,"created_by":15,"id":457,"name":458,"updated":459,"updated_by":15},"2026-03-04 08:51:00.968Z","qivmit8ukkhb143","Typing Status","2026-06-07 06:48:44.083Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":462,"created_by":15,"id":463,"name":464,"updated":465,"updated_by":15},"2026-03-04 08:46:14.782Z","v0mhensk18fofru","WebSocket Chat","2026-06-07 06:47:04.148Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"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":471,"created_by":15,"id":472,"name":473,"updated":474,"updated_by":15},"2026-03-04 08:51:01.365Z","h5pcr9najjxfqwh","Typing Indicator","2026-06-07 06:48:44.149Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":119,"collectionId":41,"collectionName":42,"created":43,"expand":477,"id":481,"slug":482,"updated":483,"views":484},{"category":478},{"blogIds":479,"collectionId":47,"collectionName":48,"created":123,"created_by":15,"id":119,"image":124,"image_alt":43,"image_path":125,"label":480,"name":127,"priority":128,"publish_at":129,"scheduled_at":43,"status":56,"updated":130,"updated_by":15},[],{"en":127,"th":127},"qa8pf1ntbtf5iya","typing-indicator-websocket-chat","2026-06-30 14:24:57.834Z",316,"f0symmnhfpvutpu","2025-03-24 01:50:55.427Z","เรียนรู้วิธีเพิ่ม Typing Indicator (สถานะการพิมพ์) ใน WebSocket Chat เพื่อให้ผู้ใช้สามารถเห็นเมื่อคู่สนทนากำลังพิมพ์ รองรับการแจ้งเตือนแบบเรียลไทม์ผ่าน WebSocket","2026-06-07 06:44:37.287Z",{"alt":490,"cover_image_path":491,"created":492,"expand":493,"id":523,"published_at":524,"school_blog":519,"short_description":525,"title":490,"updated":526,"slug":520,"views":522},"7 เทคนิค Clean Code เพื่อโค้ดคุณภาพ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkkcjq36v8ovf377\u002F1wsr9xo1h84_jx6kiwdvw8.webp","2026-03-04 08:50:48.992Z",{"keywords":494,"locale":506,"school_blog":507},[495,500,501],{"collectionId":12,"collectionName":13,"created":496,"created_by":15,"id":497,"name":498,"updated":499,"updated_by":15},"2026-03-04 08:47:48.682Z","tjtve6zpa4tn6cr","Clean Code","2026-06-07 06:47:34.469Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":502,"created_by":15,"id":503,"name":504,"updated":505,"updated_by":15},"2026-03-04 08:34:44.600Z","gegz59u7ho1kpai","เทคนิคการเขียนโค้ด","2026-06-07 06:46:15.298Z",{"code":30,"collectionId":31,"collectionName":32,"created":33,"flag":34,"id":35,"is_default":36,"label":37,"updated":38},{"category":508,"collectionId":41,"collectionName":42,"created":43,"expand":509,"id":519,"slug":520,"updated":521,"views":522},"qn0d7xwatkleou1",{"category":510},{"blogIds":511,"collectionId":47,"collectionName":48,"created":512,"created_by":15,"id":508,"image":513,"image_alt":43,"image_path":514,"label":515,"name":516,"priority":54,"publish_at":517,"scheduled_at":43,"status":56,"updated":518,"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":516,"th":516},"How to","2025-02-04 08:40:59.666Z","2026-06-07 06:45:02.619Z","0qovmiyknwuvkzi","7-clean-code-techniques","2026-07-01 15:44:42.479Z",746,"kkcjq36v8ovf377","2025-03-21 09:54:15.917Z","เรียนรู้ 7 เทคนิคที่ช่วยให้การเขียนโค้ดของคุณมีคุณภาพและเข้าใจง่ายมากขึ้น","2026-06-07 06:44:34.577Z",28,12,439,37]