Cách làm ứng dụng chat

Lưu ý quan trọng: Để dùng các ứng dụng trong Google Chat, bạn phải sử dụng tài khoản công việc hoặc tài khoản trường học.

Ứng dụng là các tài khoản đặc biệt mà bạn có thể nhắn tin. Những tài khoản này kết nối bạn với các dịch vụ trong Chat như tra cứu thông tin, lên lịch cuộc họp và thực hiện các việc cần làm. Khi bạn tương tác với ứng dụng trong Chat, ứng dụng đó có thể xem địa chỉ email, hình đại diện và các thông tin cơ bản khác của bạn. Ứng dụng cũng có thể xem thông tin cơ bản khác của những người khác trong Chat, nhưng không thể xem địa chỉ email hoặc hình đại diện của họ, trừ trường hợp họ tương tác trực tiếp với ứng dụng đó.

Google tạo và duy trì một số ứng dụng, chẳng hạn như Meet và Google Drive. Trong khi đó, những ứng dụng khác lại do các nhà cung cấp phần mềm bên thứ ba tạo và duy trì. Nếu bạn dùng ứng dụng bên thứ ba, hãy xem kỹ Điều khoản dịch vụ và chính sách quyền riêng tư của nhà cung cấp để biết thêm thông tin về việc bên thứ ba sử dụng dữ liệu của bạn.

Tìm và thêm ứng dụng trong Google Chat hoặc Gmail

Nếu tổ chức của bạn có dùng ứng dụng, bạn có thể:

  • Gửi tin nhắn trực tiếp cho ứng dụng.
  • Thêm ứng dụng vào không gian hoặc cuộc trò chuyện.

Thêm ứng dụng vào không gian hoặc cuộc trò chuyện trong Google Chat hoặc Gmail

Tìm hiểu cách thêm hoặc loại bỏ người và ứng dụng trong không gian hoặc cuộc trò chuyện nhóm.

Sử dụng lệnh dấu gạch chéo trong tin nhắn

Bạn có thể sử dụng lệnh dấu gạch chéo trong Google Chat để giao tiếp nhanh chóng với ứng dụng. Bạn không cần nhớ các lệnh. Bạn chỉ cần nhập dấu gạch chéo xuôi / là danh sách các lệnh sẽ xuất hiện.

Chỉ bạn mới xem được các lệnh dấu gạch chéo mà bạn sử dụng. Bạn sẽ thấy phản hồi của ứng dụng trong cuộc trò chuyện. 

Loại bỏ ứng dụng khỏi tin nhắn 1:1 trong Chat hoặc Gmail

Mẹo: Hãy chạm và giữ một cuộc trò chuyện để xem thêm tùy chọn.

Gửi ý kiến phản hồi và yêu cầu trợ giúp thông qua ứng dụng trong Chat hoặc Gmail

Gửi tin nhắn thông qua ứng dụng để yêu cầu trợ giúp hoặc gửi ý kiến phản hồi.

Tạo ứng dụng

Để biết thông tin về cách tạo ứng dụng tuỳ chỉnh cho tổ chức của bạn, hãy truy cập vào tài liệu về API Google Chat. Để biết các nguyên tắc tạo ứng dụng trong tổ chức của bạn, hãy liên hệ với quản trị viên Google Workspace. Quản trị viên của tôi là ai?

Cấp cho các ứng dụng quyền tạo không gian và thêm thành viên vào không gian trong Google Chat

Bạn có thể cho phép ứng dụng thay mặt bạn làm các công việc sau:

  • Tạo không gian
  • Thêm thành viên vào không gian

Để thay mặt bạn thực hiện, ứng dụng cần bạn cho phép truy cập vào Tài khoản Google của bạn. Khi một ứng dụng cần quyền này, sẽ có một thông báo yêu cầu quyền truy cập. Để cấp quyền, hãy nhấp vào Cho phép.

Thông tin này có hữu ích không?

Chúng tôi có thể cải thiện trang này bằng cách nào?

Vậy là cũng đã đi tới bài cuối của socketIO, trong bài này sẽ là làm một ứng dụng chat với SocketIO và tìm hiểu thêm một chút về cách debug và log chương trình

Ứng dụng chat

Với ứng dụng chat này ta có thể sử dụng nó để chat với nhiều room chat khác nhau. Ta sẽ cho phép user chọn username và cho phép họ chat với tên đó. Đầu tiên sẽ là điều chỉnh file html để request người dùng nhập thông tin vào



   
      Hello world
   
   
   
   
   
      
      
   

Tiếp theo là tạo server để chấp nhận các connection từ client. Cho phpes người dùng chọn username bằng event setUsername. Nếu người dùng tồn tại, chúng ta sẽ phản hồi bằng event userExists , ngược lại sẽ là event userSet.

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
   res.sendFile(__dirname + '/index.html');
});

users = [];
io.on('connection', function(socket) {
   console.log('A user connected');
   socket.on('setUsername', function(data) {
      if(users.indexOf(data) > -1) {
         users.push(data);
         socket.emit('userSet', {username: data});
      } else {
         socket.emit('userExists', data + ' username is taken! Try some other username.');
      }
   })
});

http.listen(3000, function() {
   console.log('listening on localhost:3000');
});

Tiếp tục điều chỉnh lại index.html một chút xíu để gửi username tới server khi người dùng click vào nút, nếu user tồn tại thì sẽ show ra lỗi, ngược lại thì sẽ show ra thông tin đã được chat lên



   
      Hello world
   
   
   
   
   
   
      

Giờ ta sẽ thấy thông tin báo rằng username đã đăng ký rồi

SC username is taken! Try some other username.

Khi bạn cung cấp username được phép thì sẽ được đưa tới  message bõ và nút nhấn để gửi message. Vì chưa làm cái này nên sẽ bị stuck tại thông báo như trên  do đó ta phải handle và dẫn message tới client được kết nối bằng cách điều chỉnh file app.js như sau

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
   res.sendFile(__dirname + '/index.html');
});

users = [];
io.on('connection', function(socket) {
   console.log('A user connected');
   socket.on('setUsername', function(data) {
      console.log(data);
      
      if(users.indexOf(data) > -1) {
         socket.emit('userExists', data + ' username is taken! Try some other username.');
      } else {
         users.push(data);
         socket.emit('userSet', {username: data});
      }
   });
   
   socket.on('msg', function(data) {
      //Send message to everyone
      io.sockets.emit('newmsg', data);
   })
});

http.listen(3000, function() {
   console.log('listening on localhost:3000');
});

Giờ thì kết nối thử 2 client vào server và chat thử xem sao, ta chọn 2 client là Tí và Tèo chat hello Tí hello Tèo xem thế nào thôi anh em

Cách làm ứng dụng chat

Log trên server

listening on localhost:3000
A user connected
A user connected
A user connected
Tí
A user connected
Tèo

Debug và Log

Theo trang chủ của socket.IO thì có một số cách debug cho chúng ta như sau

Cách ok nhất để xem thông tin có hay không là dùng *, thêm đoạn code sau vào trong file package.json

DEBUG=* node yourfile.js

Nội dung của file sẽ giống như sau

{
  "name": "helloworld",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
	"start": "NODE_ENV=dev DEBUG=* node app.js"
  },
  "author": "SC",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1",
    "socket.io": "^2.3.0"
  }
}

Hoặc ta có thể debug trên trình duyệt(cách này thường hay được dùng nhất) bằng cách sau

  • Chuột phải vào trang localhost:3000 trình duyệt chrome
  • Chọn Inspect element
  • Chọn Console tab
  • localStorage.debug = '*'; enter
  • F5 lại trang web

Để xem tất cả debug messages từ the engine và socket.io ta thay localStorage.debug = '*'; bằng localStorage.debug = 'engine,socket.io*';

Cách làm ứng dụng chat

Toàn bộ code của serie này anh em có thể tham khảo ở

hocarm/nodejs-socketio-tutorial

Contribute to hocarm/nodejs-socketio-tutorial development by creating an account on GitHub.

GitHub

Kết

Vậy là chúng ta đã hoàn thành tất cả các bài học trong series SocketIO rồi, các bạn đã hiểu được sơ bộ cơ bản về socketio, cách làm một ứng dụng với nó và cách để debug lấy thông tin. Coi như hoàn thành mức độ sơ cấp để đủ kiến thức trang bị cho phần tiếp theo đáng mong chờ hơn :D