เมื่อเราติดตั้ง Node.js และ Socket.io ตามวิธีปกติได้แล้ว และทำการพัฒนา application ขึ้นมาทดสอบใช้งานได้แล้วจะพบว่า การจะเรียกใช้งาน Socket.io แต่ละครั้งนั้นค่อนข้างจะมีความยุ่งยากอยู่เล็กน้อย คือต้องเปิด command line และพิมพ์คำสั่ง node javascript-file.js
แต่ถ้าหากเราไม่ต้องการทำอย่างนั้น ต้องการให้มันรันอัตโนมัติบน Windows และรันอย่างเงียบๆไม่ต้องเปิด command prompt ขึ้นมา ก็ทำได้ครับ ตามวิธีดังต่อไปนี้.
ติดตั้ง Node.js/Socket.io เป็น Windows service
ก่อนจะดำเนินการขั้นนี้โปรดแน่ใจก่อนว่าได้ทำการติดตั้ง Node.js และ Socket.io ตามแบบปกติก่อนแล้วนะครับ
- ดาวน์โหลด NSSM
- แตกไฟล์ออกใน C:\nssm
- เปิด command prompt พิมพ์คำสั่งดังต่อไปนี้
- nssm install "MyServiceName" โดย MyServiceName คือชื่อ Service ที่คุณกำหนดเองนะครับ
- จะขึ้นหน้าตาดังต่อไปนี้
ให้กรอกช่อง Path ไปยังตำแหน่งของ node.exe เช่น C:\Program Files\nodejs\node.exe
ช่อง Startup directory: ให้ระบุไปยังตำแหน่งที่เก็บไฟล์ js ที่จะใช้รันกับ node เช่น C:\my-sites\test-project
ช่อง Arguments: ให้ระบุชื่อไฟ์ js ที่จะใช้รันกับ node เช่น index.js - ที่ต้องกรอกมีเพียงเท่านี้ครับ จากนั้นกดปุ่ม Install service ถือเป็นอันติดตั้งสำเร็จ
เมื่อเปิด Windows service ขึ้นมาจะพบว่า service ตามชื่อที่เราระบุได้ถูกติดตั้งลงไปเรียบร้อยแล้ว
ให้ทดลองกดปุ่มสามเหลี่ยม start service แล้วรอดูว่าจะเริ่ม service สำเร็จหรือไม่. หากไม่พบ error ใดๆถือว่าสำเร็จครับ ให้กลับไปทดลองกับ application ที่เราสร้างเชื่อมกับ socket.io ก็ควรจะทำงานได้ตามปกติเช่นกัน.
ถอนการติดตั้ง Service
- เปิด command prompt ขึ้นมา
- ปิดหน้าต่าง Services ถ้าหากเปิดทิ้งไว้
- ปกติแล้ว NSSM เมื่อพิมพ์คำสั่ง remove แล้วมันจะหยุดการทำงานของ service ให้ก่อน แต่ในบางกรณีก็ไม่ยอมหยุด ดังนั้นเพื่อความแน่นอนเราพิมพ์คำสั่งหยุดการทำงาน service ก่อนครับ
พิมพ์ sc stop "MyServiceName" ถือเป็นอันหยุดการทำงาน service ที่ระบุ โดย MyServiceName คือชื่อ Service ที่คุณกำหนดเองตอนสร้างไว้นะครับ - ตามด้วย nssm remove "MyServiceName" โดยจะขึ้นหน้าต่างถามยืนยันอีกครั้ง ให้กด Yes และเมื่อกดแล้วอาจพบข้อความแจ้งอะไรสักอย่างแต่ไม่ต้องกังวลเพราะทำสำเร็จแล้ว
- เปิดหน้าต่าง Services ใหม่จะไม่พบ service ที่เคยถูกติดตั้งลงไปแล้ว