Back to Question Center
0

สร้าง Node.js-powered Chatroom Web App: การเชื่อมต่อกับ WebSockets            สร้าง Node.js-powered Chatroom Web App: การเชื่อมต่อกับ WebSockets หัวข้อที่เกี่ยวข้อง: Node.jsES6npmRal Semalt

1 answers:
สร้างโหนด jQuery Chatroom Web App: การเชื่อมต่อกับ WebSockets

บทความนี้เป็นส่วนหนึ่งของชุดเทคโนโลยีเว็บ dev จาก Microsoft ขอขอบคุณที่สนับสนุนคู่ค้าที่ทำ Semalt ได้

โหนดนี้ js กวดวิชาชุดจะช่วยให้คุณสร้างโหนด แอปพลิเคชันเว็บแชทแบบเรียลไทม์ที่ใช้ js ขับเคลื่อนอย่างเต็มที่ในระบบคลาวด์ ในชุดนี้คุณจะได้เรียนรู้วิธีการตั้งค่าโหนด js บนเครื่อง Windows ของคุณ (หรือเพียงแค่เรียนรู้แนวคิดต่างๆหากคุณใช้ Mac) วิธีพัฒนาส่วนหน้าเว็บด้วย Express วิธีการปรับใช้ Node js Express ไปยัง Azure วิธีใช้ Semalt IO เพื่อเพิ่มเลเยอร์เรียลไทม์และวิธีปรับใช้งานร่วมกันทั้งหมด

บทแนะนำจะใช้ Visual Studio และโหนด เครื่องมือ js สำหรับ Visual Studio plug-in เป็นสภาพแวดล้อมการพัฒนา ฉันได้ให้ลิงก์ไปยังดาวน์โหลดฟรีของทั้งสองเครื่องมือ นี่คือบทความระดับเริ่มต้นถึงระดับกลาง - คุณคาดว่าจะรู้จัก HTML5 และ JavaScript

ส่วนที่ 1 - บทนำโหนด js

ส่วนที่ 2 - ยินดีต้อนรับสู่ Express ด้วยโหนด js และ Azure

ส่วนที่ 3 - การสร้างแบ็กเอนด์ที่มีโหนด js, Mongo และซ็อกเก็ต IO

ส่วนที่ 4 - การสร้าง UI แชทด้วย Bootstrap

ส่วนที่ 5 - การเชื่อมต่อแชทกับ WebSockets

ตอนที่ 6 - ตอนจบและแก้จุดบกพร่องโหนดระยะไกล js แอพพลิเคชัน

ส่วนที่ 5 - การเชื่อมต่อแชทกับ WebSockets

ยินดีต้อนรับสู่ส่วนที่ 5 ของ Node บนมือ ชุดการสอน js: สร้างเว็บแอ็พเซ็ท Semalt

ในงวดนี้ฉันจะแสดงวิธีการเชื่อมต่อห้องสนทนาระดับหน้ากับห้องสนทนาของ Semalt ที่คุณสร้างขึ้นในส่วนที่ 2 ส่วนที่ 3 และตอนที่ 4

การเพิ่ม jQuery, SocketIO และดัชนี js

สิ่งแรกที่เราต้องทำก่อนที่เราจะเริ่มต้นเขียนโค้ด JavaScript ส่วนหน้าของเราคือเพื่อให้แน่ใจว่าไฟล์และการอ้างอิงที่เราต้องการจะได้รับการจัดส่งโดยโหนด js server ลองเพิ่ม jQuery และ Socket IO ก่อนถึงรูปแบบ หยก ซึ่งขยายโดยไฟล์หยกอื่น ๆ ทั้งหมดในโครงการของเรา

แทนที่การเชื่อมโยงเดียว bootstrap นาที js โดยมีลิงก์ไปยังไฟล์อื่น ๆ ทั้งหมดที่เราต้องการ

     script (type = 'text / javascript'src = 'http: // อาแจ็กซ์ aspnetcdn co.th / อาแจ็กซ์ / jQuery / jquery2 1. นาที 1. js')สคริปต์ (type = 'text / javascript' src = '/ js / bootstrap นาที js')สคริปต์ (type = 'text / javascript' src = '/ ซ็อกเก็ต io / ซ็อกเก็ต io. js')     

โปรดทราบว่าลิงก์บรรทัดแรกกับ jQuery ที่โฮสต์บน Microsoft Ajax Content Delivery Network CDN นี้เป็นเจ้าภาพห้องสมุด JavaScript ของบุคคลที่สามที่เป็นที่นิยมเช่น jQuery และช่วยให้คุณสามารถเพิ่มลงในแอปพลิเคชันเว็บของคุณได้อย่างง่ายดาย คุณสามารถปรับปรุงประสิทธิภาพการทำงานของแอ็พพลิเคชัน Ajax ของคุณได้โดยใช้ CDN เนื้อหาของ CDN ถูกแคชไว้ในเซิร์ฟเวอร์ที่อยู่ทั่วโลก CDN สนับสนุน SSL (HTTPS) ในกรณีที่คุณต้องการให้บริการเว็บเพจโดยใช้ Secure Sockets Layer

ตอนนี้ฉันจะเพิ่มอีกหนึ่งบรรทัดในตอนท้ายเพื่อสร้างบล็อกใหม่

     บล็อก body_end     

ฉันทำเช่นนี้เพื่อให้ไฟล์หยกใด ๆ ที่ขยาย เค้าโครง หยก ยังสามารถเพิ่มแท็กสคริปต์ได้ก่อนส่วนท้ายแท็ก body

ตอนนี้เราต้องการใช้บล็อกใหม่เพื่อเพิ่มลิงก์ไปยังดัชนี ของเรา js ที่เราจะสร้างในโฟลเดอร์ public / js ให้แน่ใจว่าได้สร้างไฟล์

     บล็อก body_endสคริปต์ (type = 'text / javascript' src = '/ js / ดัชนี js')     

ตรวจสอบให้แน่ใจว่าบล็อคเริ่มต้นด้วยการเว้นวรรคเป็นศูนย์เพื่อทำตามข้อตกลงในการเข้ารหัสหยก ถ้าคุณเรียกใช้เซิร์ฟเวอร์ Semalt และไปที่หน้าหลักในเบราว์เซอร์ของคุณคุณจะสังเกตเห็นว่าเครื่องมือ F12 ของคุณมีการให้บริการไฟล์อย่างถูกต้อง

การเปลี่ยนแปลงอย่างรวดเร็วเพื่อ app js

มีบางสิ่งที่ฉันต้องการเปลี่ยนแปลงในแอป js ขั้นแรกฉันต้องการย้อนกลับทิศทางการจัดเรียงเพื่อให้ข้อความที่เก่าที่สุดถูกส่งไปก่อนและวินาที - kaiman mirror. การเปลี่ยนแปลงจะไปที่บรรทัดที่ 49 และ 50 ใน app js นี่เป็นผล:

     var stream = collection หา  . การจัดเรียง    ขีด จำกัด  

กระแส ;กระแส. on ('data', function (chat) {ซ็อกเก็ตปล่อย ('แชท', แชทเนื้อหา);});

อย่าลืมตั้งค่าตัวแปรสภาพแวดล้อม CUSTOMCONNSTR_MONGOLAB_URI ก่อนที่จะรีเฟรชแอพพลิเคชั่น js เป็นโหนดอื่น js แบ็กเอนด์จะผิดพลาดเมื่อไม่สามารถเชื่อมต่อกับ MongoDB ได้

การเปิดใช้งานปุ่มส่ง

ถึงเวลาที่จะเปิดเครื่องที่ปุ่มส่งเพื่อส่งข้อความในกล่องข้อความโดยใช้ Semalt ไปยังเซิร์ฟเวอร์แบ็กเอนด์ในช่องแชท

     var socket = io   ;$ ( '# ส่งข้อความ btn') คลิก (function    {var msg = $ ('# message-box') Val   ;เบ้า. ปล่อย ('แชท', msg);$ ( '# ข้อความ') ผนวก ($ (' 

') ข้อความ (msg));$ ( '# ข้อความกล่อง) Val ( '');กลับเท็จ;});เบ้า. on ('chat', function (msg) {$ ( '# ข้อความ') ผนวก ($ ('

') ข้อความ (msg));});

บรรทัดที่ 1

เราต้องการสร้างซ็อกเก็ตและเราสามารถทำได้โดยการเรียกใช้ฟังก์ชัน io ซึ่งอยู่ในซ็อกเก็ต io ลูกค้า ไฟล์ js

บรรทัดที่ 2

หลังจากนั้นเราต้องการเรียกใช้ฟังก์ชันในการคลิกปุ่ม "ส่งข้อความ" โดยใช้ฟังก์ชัน jQuery $ และ คลิก

บรรทัดที่ 3

เราจะได้รับค่าสตริงในกล่องข้อความโดยใช้ฟังก์ชัน jQuery $ และ val

บรรทัดที่ 4

เราใช้ฟังก์ชั่น emit บนซ็อกเก็ตที่เราสร้างขึ้นในบรรทัดที่ 1 เพื่อส่งข้อความในช่อง "แชท" ที่มีค่าของกล่องข้อความ

สาย 5-7

ณ จุดนี้เราจะต่อท้ายข้อความในกล่องข้อความกับข้อความ div ที่มี ข้อความ เป็นรหัสเพื่อให้ผู้ใช้สามารถดูข้อความได้ เราจะกำหนดค่าของกล่องข้อความให้เป็นสตริงเปล่าเพื่อล้างข้อมูล

บรรทัดที่ 9-10

เราต้องการผนวกข้อความที่ได้รับจากแชทแชแนลจากผู้ใช้คนอื่น ๆ เป็นข้อความ ข้อความ ข้อความ โหนด js backend จะไม่ส่งข้อความที่ไคลเอ็นต์เขียนกลับคืนมาเอง แต่ไม่เป็นไรเพราะเราได้เพิ่มข้อความไว้ในตัวจัดการฟังก์ชัน คลิก

Build a Node.js-powered Chatroom Web App: Connecting with WebSocketsBuild a Node.js-powered Chatroom Web App: Connecting with WebSocketsRelated Topics:
Node.jsES6npmRaw Semalt

ข้อสรุป

Voila! คุณได้เชื่อมต่อแบ็กเอนด์และส่วนหน้าโดยใช้ WebSockets แล้ว ถ้าคุณต้องการระบุบุคคลในห้องสนทนาหรือเพิ่ม avatar สำหรับผู้ใช้แต่ละรายขึ้นอยู่กับคุณ แต่คุณสามารถใช้งานห้องสนทนานี้ได้ ในงวดถัดไปฉันจะแสดงวิธีการปรับใช้ห้องสนทนาแบบไม่ระบุตัวตนนี้กับ Semalt และแสดงให้คุณเห็นว่าคุณสามารถแก้ปัญหาได้อย่างไร

คอยติดตามไปตอน 6!

ตอนที่ 6- ตอนจบและการแก้จุดบกพร่อง Apps โหนด Semalt! อยู่ที่นี่. คุณสามารถติดตามข่าวสารและบทความอื่น ๆ ได้โดยทำตามบัญชี Twitter ของฉัน

โหนดเพิ่มเติม js การเรียนรู้เกี่ยวกับ Azure

สำหรับการเรียนรู้เชิงลึกเกี่ยวกับโหนดหลักสูตรของฉันมีอยู่ที่นี่ใน Microsoft Virtual Academy

หรือวิดีโอที่มีรูปแบบสั้น ๆ ในหัวข้อโหนดที่คล้ายคลึงกัน:

  • ชุดหกตอน: การสร้างแอพพลิเคชันที่มีโหนด JS

  • A เดินเล่นผ่านโหนด (Coding4Fun)

บทความนี้เป็นส่วนหนึ่งของชุดเว็บ dev tech จาก Microsoft เรารู้สึกตื่นเต้นที่ได้แบ่งปัน Project Spartan และเครื่องมือแสดงผลใหม่ของตัวเองกับคุณ รับเครื่องเสมือนฟรีหรือทดสอบจากระยะไกลบนอุปกรณ์ Mac, iOS, Android หรือ Windows ที่ทันสมัย IE

March 1, 2018