Node.js + Socket.io如何从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服务器接收数据,但是我不明白它是如何工作的。

卡尔·比约克利德(KalleBjörklid)

这是一个简单的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):

  1. 创建一个新目录,并在其中创建上述两个文件
  2. 运行npm install这将读取package.json并安装所需的依赖项
  3. node app.js
  4. http://localhost:3000/api/receive使用POST将以下JSON消息发送到URL

    {“ message”:“ Hello world”}

检查您在其中运行控制台输出node app.js它应该已经记录了“ Hello world”消息。

您正在创建的是一个简单的REST api。要了解有关如何使用Node.js进行REST api的更多信息并了解我发布的示例应用程序中发生的事情,可以使用Google“ Node.js rest api教程”。由于某些教程将解释如何设置数据库等,因此您通常必须选择阅读的内容。是上面示例中完成的大部分操作的一部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Socket.io与Node.js

来自分类Dev

Socket.IO/Node.JS执行

来自分类Dev

Node.JS socket io 连接

来自分类Dev

Node.js和Socket.io-动态socket.on()

来自分类Dev

Node.js - Socket.io-client 不发出数据

来自分类Dev

Socket.IO-如何脱机处理Node.js

来自分类Dev

如何在node.js中为socket.io交互保留临时数据?

来自分类Dev

如何使用socket.io从Express Node.js服务器发送数据

来自分类Dev

node.js和socket.io-如何保持数据从连接流向新连接的用户?

来自分类Dev

如何在node.js中为socket.io交互保留临时数据?

来自分类Dev

Node.js-Socket.io如何检测发送到哪个房间的数据?

来自分类Dev

Socket.io从Node中的多个套接字接收数据

来自分类Dev

node.js无法在socket.io的专用通道上接收

来自分类Dev

socket.io:从服务器节点js接收数据

来自分类Dev

无法使用Lighttpd访问Raspberry Pi上的socket.io.js [Node.JS&Socket.IO]

来自分类Dev

Django模板中的socket.io-node.js不服务socket.io.js

来自分类Dev

找不到Socket.io.js(node.js + express + socket.io)

来自分类Dev

Socket.IO在Node.js中扮演什么角色

来自分类Dev

Node.js和Socket.io创建空间

来自分类Dev

在Socket IO和Node JS中轮询MySQL DB

来自分类Dev

node.js / socket.io-跟踪客户端

来自分类Dev

更改Twitter流谓词(Node.js,socket.io)

来自分类Dev

为node.js安装socket.io时出错

来自分类Dev

使用node.js + socket.io发送通知

来自分类Dev

带有websocket的Node.js socket.io

来自分类Dev

使用Cordova表达Node.js socket.io

来自分类Dev

Nginx + Node.js + Socket.io + SSL是否可行?

来自分类Dev

Android Node.js Socket.io无法连接

来自分类Dev

Node.js socket.io断开事件不会触发