![](/img/trans.png)
[英]How to use socket.io to display realtime data in the client (web browser) from the node.js server?
[英]How Node.js + Socket.io receive data from PHP
我有一个小项目,让用户上传实时数据。 由于我是一个PHP开发人员,我发现很难使用Node.js和Socket.io。 我所做的是,我使用PHP作为我的应用程序的主要后端。 它将从用户接收数据并将其保存到数据库。 用户提交数据后,PHP会将数据发送到node.js应用程序,该应用程序将通过socket.io向所有连接的用户发出。 但是我怎么能这样做呢? 我的意思是node.js怎么会有没有新的数据? 我希望PHP将数据(通过POST)发送到Nodejs,然后socket.io将广播它。
我找不到任何有效的例子。 顺便说一句,PHP将发送给Node.js的数据将采用JSON格式。 有人问这里: NodeJS从PHP服务器接收数据,但我无法理解它是如何工作的。
这是一个简单的Node.js应用程序,它创建一个REST API,您可以将JSON发布到:
app.js:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
app.use(bodyParser.json({type: 'application/vnd.api+json'}));
var router = express.Router();
function dataHandler(req, res) {
// the 'body' variable will contain the json you've POSTed:
var body = req.body;
// your socket.io logic would go around here.
console.log(body.message);
res.send("ok");
}
router.route('/receive')
.post(dataHandler);
app.use('/api', router);
app.listen(3000, function() {
console.log('Express started at port 3000');
});
的package.json:
{
"name": "node-test",
"descirption": "Node test",
"version": "0.0.1",
"private": true,
"dependencies": {
"body-parser": "^1.10.0",
"express": "^4.4.3"
}
}
要使其正常工作,请按照以下步骤操作(假设您已安装Node):
npm install
。 这将读取package.json
并安装所需的依赖项 node app.js
发送到URL http://localhost:3000/api/receive
使用POST http://localhost:3000/api/receive
以下JSON消息:
{“message”:“Hello world”}
检查运行node app.js
的控制台输出。 它应该记录“Hello world”消息。
你正在创建的是一个简单的REST api。 要了解有关如何使用Node.js执行REST apis并了解我发布的示例应用程序中发生的事情的更多信息,您可以使用Google的“Node.js rest api tutorial”。 你通常不得不挑选你所读的内容,因为一些教程将解释如何设置数据库等。 这是一个贯穿上面例子中所完成的大部分工作的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.