nodejs – Viết ứng dụng chat đơn giản

Bước 1: cài đặt gói phụ thuộc

Tham khảo thêm tại

Cài gói apt-get install (Tại thư mục gốc của app)

Bước 2: Tạo dịch vụ server.js

var io = require(‘’).listen(8000);

// open the socket connection
io.sockets.on(‘connection’, function (socket) {

// listen for the chat even. and will recieve
// data from the sender.
socket.on(‘chat’, function (data) {

// default value of the name of the sender.
var sender = ‘unregistered’;

// get the name of the sender
socket.get(‘nickname’, function (err, name) {
console.log(‘Chat message by ‘, name);
console.log(‘error ‘, err);
sender = name;

// broadcast data recieved from the sender
// to others who are connected, but not
// from the original sender.
socket.broadcast.emit(‘chat’, {
msg : data,
msgr : sender

// listen for user registrations
// then set the socket nickname to
socket.on(‘register’, function (name) {

// make a nickname paramater for this socket
// and then set its value to the name recieved
// from the register even above. and then run
// the function that follows inside it.
socket.set(‘nickname’, name, function () {

// this kind of emit will send to all! 😀
io.sockets.emit(‘chat’, {
msg : “naay nag apil2! si ” + name + ‘!’,
msgr : “mr. server”


Bước 3: Tạo ứng dụng client – index.php

<script src=”http://localhost:8000/”></script>
<script src=””></script>
var name = ”;
var socket = io.connect(‘http://localhost:8000’);

// at document read (runs only ones).
// on click of the button (jquery thing)
// the things inside this clause happen only when
// the button is clicked.

// just some simple logging
$(“p#log”).html(‘sent message: ‘ + $(“input#msg”).val());

// send message on inputbox to server
socket.emit(‘chat’, $(“input#msg”).val() );

// the server will recieve the message,
// then maybe do some processing, then it will
// broadcast it again. however, it will not
// send it to the original sender. the sender
// will be the browser that sends the msg.
// other browsers listening to the server will
// recieve the emitted message. therefore we will
// need to manually print this msg for the sender.
$(“p#data_recieved”).append(“<br />\r\n” + name + ‘: ‘ + $(“input#msg”).val());

// then we empty the text on the input box.

// ask for the name of the user, ask again if no name.
while (name == ”) {
name = prompt(“What’s your name?”,””);

// send the name to the server, and the server’s
// register wait will recieve this.
socket.emit(‘register’, name );

// listen for chat event and recieve data
socket.on(‘chat’, function (data) {

// print data (jquery thing)
$(“p#data_recieved”).append(“<br />\r\n” + data.msgr + ‘: ‘ + data.msg);

// we log this event for fun 😀
$(“p#log”).html(‘got message: ‘ + data.msg);

<input type=”text” id=”msg”></input><button>Click me</button>
<p id=”log”></p>
<p id=”data_recieved”></p>

Bước 4: Chạy dịch vụ tại server.js

Command: nodejs server.js

Lưu ý check quyền thực thi cho file server.js



1 thought on “nodejs – Viết ứng dụng chat đơn giản”

Comments are closed.