Khi xây dựng ứng dụng Android, chúng ta thường phải thực hiện các giao tiếp với server như đăng kí, đăng nhập, gửi tin nhắn.
NodeJs và
SocketIO là một công cụ cực kì đơn giản và hữu ich để xây dựng server. Khi xây dựng các ứng dụng ChatApp hay Push Notification thì
NodeJs luôn là lựa chọn đầu tiên của tôi. Ở bài viết này, tôi chỉ đi sâu vào cách giao tiếp đơn giản giữa Android và
NodeJs là gửi nhận tin nhắn, ở các bài viết sau, tôi sẽ hướng dẫn xây dựng các ứng dụng ChatApp, Push Notification, và sử dụng database là
MongoDB cực kì đơn giản và dễ sử dụng
1. Xây dựng server NodeJS
Đây là code server nodejs server.js:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// server.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function (req, res){
res.sendfile('index.html');
});
io.on('connection', function (socket) {
socket.on('login', function (name) {
console.log(name + "login");
socket.emit('login_ok', name + "login ok");
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
|
Chạy server ở cổng 3000, lắng nghe các sử kiện login và gửi tin nhắn ngược trở lại để thông báo đã login thành công.
|
io.on('connection', function (socket) {
socket.on('login', function (name) {
console.log(name + "login");
socket.emit('login_ok', name + "login ok");
});
});
|
Để chạy server chạy lệnh
2. Xây dựng client Android
Đầu tiên, bạn thêm thư viện SocketIO vào file build.grable
|
dependencies {
compile 'com.github.nkzawa:socket.io-client:0.3.0'
}
|
Tiếp theo thêm quyền truy cập Internet vào file AndroidManifest.xml
|
<uses-permission android:name="android.permission.INTERNET" />
|
Trong file MainActivity.java, khai báo biến mSocket
|
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.1.73:3000");
} catch (Exception e) {
e.printStackTrace();
}
}
|
Ở đây, http://192.168.1.73:3000 chính là địa chỉ Ip của máy, lắng nghe server ở cổng 3000. Bạn có thể tìm địa chỉ ip của máy bằng cách vào cmd và gõ ipconfig, địa chỉ ip của máy nằm ở mục IP4 Address.
Kết nối với server và gửi tin nhắn login
|
mSocket.connect();
mSocket.emit("login", "Thomas Codd");
|
Để nhận tin nhắn từ phía server, ta dùng
|
mSocket.on("login_ok", onLogin);
|
|
private Emitter.Listener onLogin = new Emitter.Listener() {
@Override
public void call(Object... args) {
String message = args[0].toString();
Log.d("message", message);
}
};
|
Đây là file MainActivity.java hoàn chỉnh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.github.nkzawa.socketio.client.IO;
import com.github.nkzawa.socketio.client.Socket;
import com.github.nkzawa.emitter.Emitter;
public class MainActivity extends Activity {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.1.73:3000");
} catch (Exception e) {
e.printStackTrace();
}
}
private Emitter.Listener onLogin = new Emitter.Listener() {
@Override
public void call(Object... args) {
String message = args[0].toString();
Log.d("message", message);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSocket.connect();
mSocket.emit("login", "Thomas Codd");
mSocket.on("login_ok", onLogin);
}
}
|
Chạy chương chình để thấy sự tương tác giữa Android và NodeJs.
Kết Nối Android, Nodejs Và Socket Io - Blogger Jt >>>>> Download Now
Trả lờiXóa>>>>> Download Full
Kết Nối Android, Nodejs Và Socket Io - Blogger Jt >>>>> Download LINK
>>>>> Download Now
Kết Nối Android, Nodejs Và Socket Io - Blogger Jt >>>>> Download Full
>>>>> Download LINK