วันพฤหัสบดีที่ 22 ตุลาคม พ.ศ. 2563

Week 5 - Progress

 ในสัปดาห์ที่ 5 นี้หลังจากที่เราได้ทำการสร้าง Server กับ Client ในสัปดาห์ที่ 4 แล้ว เราได้ทำการปรับปรุง GUI ของโปรแกรมใหม่โดยเราได้ทำการออกแบบมาเป็นดังนี้





หลังจากออกแบบ GUI ใหม่แล้ว เราได้ทำการเชื่อมต่อในส่วนของ Server, Client และ GUI เข้าด้วยกัน
ในส่วนนี้มีปัญหาที่เกิดขึ้นบางส่วนซึ่งสรุปรวมปัญหาที่เกิดขึ้นคือ

1.ไม่สามารถ Display ข้อความในหน้าต่างที่รับมาจาก Client ของตนเอง - ปัญหานี้แก้ไขได้แล้ว
2.ไม่สามารถ Display ข้อความที่ได้รับมาจาก Client อื่น - ปัญหานี้อยู่ระหว่างแก้ไข
3.การเรียกใช้ Background ของโปรแกรม - ตอนนี้เรามีข้อจำกัดคือต้องนำไฟล์ทังหมดมาไว้ในโฟล์เดอร์เดียวกัน












วันพุธที่ 14 ตุลาคม พ.ศ. 2563

Week 4 - Test sever again

ในสัปดาห์นี้ พวกเราได้ศึกษาการสร้าง server socket ที่ใช้สำหรับ chatr room

โดยคุณสมบัติของ server ที่ได้ศึกษามา มีดังนี้

- การรับ client ใหม่ 

     เมื่อมีการเชื่อมต่อ client เข้ามาใหม่ จะบันทึก ip ของ client นั้นเอาไว้ ในรูปแบบของ dictionary โดยที่มี ip เป็น key และ name (ชื่อของผู้ใช้) เป็น value\

- กรณี ip นั้นอยู่ใน list (ก็หมายถึงมีอยู่ในระบบ) แล้ว

    ถ้า client ได้ทำการ disconnect server จะทำการลบ ip นั้นออกจากระบบ 

- ได้ทำการ encode และ decode เพื่อความปลอดภัยในการส่งข้อมูล (เมื่อใช้ function decode/encode จะให้ค่ามาในรูป bytes)

Cr.https://pythonprogramming.net/server-chatroom-sockets-tutorial-python-3/


วันอังคารที่ 6 ตุลาคม พ.ศ. 2563

Week 3 - Test with Server

 ในสัปดาห์ที่ 3 เราได้ทำการทดลองใช้ server ที่เราศึกษาจาก https://websockets.readthedocs.io/en/stable/intro.html 

โดยเราได้ทำการทดลองสร้าง server แบบ local แล้วทดลองทำการตอบโต้ระหว่าง Client กับ Server

Code ในส่วน ของ Server



Code ในส่วนของ Client 



ลักษณะของการตอบสนองใน Server Local 


วันอังคารที่ 29 กันยายน พ.ศ. 2563

Week 2 - Draft Chat Gui

     ใน week 2 นี้เราได้ออกแบบ หน้าตาของ Gui 😀


รูปร่างหน้าตาของ GUI เบื้องต้น
คุณสมบัติของ Chat-Room
  1.  บอกจำนวน Online user



วันพุธที่ 23 กันยายน พ.ศ. 2563

Week 1 - Chat application using PyQt5 and Websocket



PyQt5 นั้นก็เป็นโมดูลของ Python ในการออกแบบฟังก์ชันการแสดงหน้า Interface มากมาย และสามารถใช้ในการขึ้นป๊อปอัพแจ้งเตือน การขึ้นข้อความต่างๆ การแสดงเวลา การทำงานของปุ่มต่างๆ และในบทความนี้ เราจะมาลองสร้างโปรแกรมแชทจาก PyQt5 กับ Websocket กัน

สามารถ install PyQt5 ด้วยคำสั่ง pip install PyQt5

โดยจุดประสงค์ของ Blog นี้ สร้างขึ้นเพื่อใช้ในการบันทึกความก้าวหน้าของงานและนำเสนอให้ผู้อ่านได้ทราบในขั้นตอนการทำต่างๆรวมถึงปัญหาหรือเหตุการณ์ต่างๆที่พบเจอด้วย

ในสัปดาห์ที่ 1 นี้ทางเราได้ทำการศึกษาในเรื่องของ PyQt5 และ websocket มาในบางส่วน

ความหมายของ WebsocketWebsocket
                                             
การสื่อสารระหว่าง Web server กับ Client แบบ Real Time


Web Socket ถ้าอธิบายให้สั้นๆ และได้ใจความคือ websocket เป็นเทคโนโลยีเพื่อใช้ การติดต่อสือสารระหว่าง Web server กับ Client แบบ Real Time Client ที่เป็น html5 + Javascript สามารถรับข้อมูลทางผั่ง Server มาแสดงผลได้ ผ่าน Protocol TCP/IP โดยไม่ต้อง Refresh หน้า Websocket นั้นประหยัดเวลา และปริมาณข้อมูลที่ส่งไปมาระหว่าง web server กับ Client

โดยการทำงานของ Websocket มันจะรอรับ Message ทางฝั่ง web server อยู่ตลอดเวลา หลังจากที่ได้ส่งคำสั่ง ติดต่อ Websocket Server ไปแล้วในครั้งแรก และมันจะรอรับ Message จนกระทั้งจะสั่ง Close หรือหยุดการติดต่อ


Week 5 - Progress

 ในสัปดาห์ที่ 5 นี้หลังจากที่เราได้ทำการสร้าง Server กับ Client ในสัปดาห์ที่ 4 แล้ว เราได้ทำการปรับปรุง GUI ของโปรแกรมใหม่โดยเราได้ทำการออกแ...