在现代应用程序开发中,实时通讯是必不可少的一部分。而为了实现实时通讯,Socket.io 是一个很好的选择。本文将指导您如何使用 Socket.io 实现 Android 与 Node.js 服务器的实时通讯。
Socket.io 简介
Socket.io 是一个支持实时事件的框架。它基于 WebSockets 和 long-polling 等技术来实现实时通讯。Socket.io 可以用于构建实时聊天应用、实时数据可视化和实时多人游戏等应用程序。
建立 Android 与 Node.js 服务器之间的实时连接
实现 Android 与 Node.js 服务器之间的实时连接需要对 Socket.io 进行配置。以下是必需的步骤:
安装 Socket.io
npm install socket.io
在服务器中引入 Socket.io
使用下面的代码在 Node.js 服务器中引入 Socket.io:
const io = require('socket.io')(server);
其中,server 为已创建的服务器实例。
在 Android 应用中使用 Socket.io
使用以下代码在 Android 应用中使用 Socket.io:
dependencies { implementation('io.socket:socket.io-client:1.0.0') { exclude group: 'org.json', module: 'json' } }
Socket mSocket; { try { mSocket = IO.socket("http://localhost:3000"); } catch (URISyntaxException e) { throw new RuntimeException(e); } }
不要忘记将地址更改为你的服务器地址。
监听连接事件
在服务器中,使用以下代码监听连接事件:
io.on('connection', (socket) => { console.log('a user connected'); });
在 Android 应用中,使用以下代码监听连接事件:
mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { @Override public void call(Object... args) { Log.d("SocketIO", "Connected"); } });
现在,在 Android 应用中启动应用程序并连接到 Node.js 服务器,可以在服务器控制台中看到 “a user connected” 信息,并且在 Android 应用中可以看到“Connected”日志输出。
发送消息
用下面的代码向服务器发送消息:
在服务器中:
io.emit('message', 'Hello World');
在 Android 应用中:
mSocket.emit("message", "Hello World");
监听消息
在服务器中,使用以下代码监听消息事件:
io.on('message', (msg) => { console.log('message: ' + msg); });
在 Android 应用中,使用以下代码监听消息事件:
mSocket.on("message", new Emitter.Listener() { @Override public void call(Object... args) { String message = (String) args[0]; Log.d("SocketIO", "Message: " + message); } });
现在,每当从 Android 应用发送消息时,在服务器控制台中将看到“message: Hello World”信息,并且在 Android 应用中可以看到“Message: Hello World”日志输出。
总结
使用 Socket.io 实现 Android 与 Node.js 服务器的实时通讯非常有用。在本文中,我们学习了如何设置 Socket.io,如何监听连接和消息事件,并如何发送和接收消息。现在,您可以通过 Socket.io 实现您的实时应用程序了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c6207e10032fedd38b5cf6