【问题标题】:Send a stream of integers from Android app and receive it on Node.js express server从 Android 应用发送整数流并在 Node.js 快速服务器上接收
【发布时间】:2014-01-13 18:16:38
【问题描述】:
我将尝试制作一个简单的 hack,将来自 Android 应用的连续流式整数发送到 Node.js 服务器。
如果我使用 express 路由 API 呼叫,我想知道如何在 Android 中创建这样的流,以及如何在我的 Node.js 服务器中接收它。
如果有人能给我一个高层次的解释,说明它是如何工作的,那就太好了。从外部WriteStream创建Node.js的具体代码示例ReadStreams会更好。
【问题讨论】:
标签:
java
javascript
android
node.js
express
【解决方案1】:
根据流的频率,您可能需要考虑使用 websocket。有一些 android 库可以实现 websocket 标准(快速搜索出现了https://github.com/koush/android-websockets),它声称实现了 websockets 和 Socket.IO。
方便的是,websockets 和 Socket.IO 都非常适合 Node。对于纯 websocket,我最喜欢 ws 模块。您可以创建一个 websocket 服务器,并为它提供一个快速应用程序,让它处理 websocket 升级请求。类似于(未测试):
var express = require('express');
var websockets = require('ws')
var app = express();
var wsServer = new WebSocketServer({ noServer: true });
var server = app.listen(3000, function () {
// Express stuff.
});
server.on('upgrade', function (req, sock, head) {
wsServer.handleUpgrade(req, sock, head, function (connection) {
// The connection object will deliver the stream.
// You'll need to listen for 'message' events.
});
});
wsServer.on('error', function (err) {
// Don't forget errors.
});
对于 Socket.IO,请参阅here。