Hands-On: Build a Node.js-powered Chatroom Web App (Part Six)
Part 6 – The Finale and Debugging Remote Node Apps!Welcome to Part 6 of the hands-on Node.js tutorial series: Build a Node.js-powered chatroom web app. In this final installment, I will show you how to do a final deployment of your chatroom and how to perform remote debugging.
Deploying to Azure!Now that we’ve got our Node.js-powered anonymous chatroom app working, let’s deploy it to the cloud in a few clicks. You can deploy to any cloud that supports Node.js. I will be using Microsoft Azure as I can run a Node.js website on there for free. You can sign up for a free trial of Microsoft Azure here. You will get trial credits to spend on all Azure services. For the service we are using, Azure Websites, you can actually run 10 websites without spending a dime. 1. Once you have your Azure account setup, go back to the IDE,right click on the project and click Publish. 2. Clicking Publish will open a wizard with a few options, select the target Microsoft Azure Websites. 3. You will be asked to sign in at this step, please use the same Microsoft Account here as you did on the Azure sign up. 4. Click New to create a new Azure website or, if you already have one created, you can select it from the dropdown. 5. You will want to complete the fields in the wizard (just like below). Make sure to choose a unique site name, and then click Create. 6. You will be presented with a pre-filled wizard. Click Publish. WE HAVE DEPLOYED TO THE CLOUD BUT THE WORK IS NOT OVER YET!
Enabling WebSockets in Azure WebsitesThere are a few things you need to do to ensure that WebSockets is enabled in your website. If you want more detailed steps or FAQ, be sure to visit this page. First, you will need to enable WebSockets from the Azure command-line or the Configuration tab, like so: Second, you will want to modify your web.config file and the following line to the system.webServer XML element.
<webSocket enabled="false" />It may seem counterintuitive, but this disables the IIS WebSockets module, which includes its own implementation of WebSockets and conflicts with Node.js specific WebSockets modules such as Socket.IO.