【问题标题】:Include Node.JS + Socket.IO in Symfony2 application在 Symfony2 应用程序中包含 Node.JS + Socket.IO
【发布时间】:2015-05-20 03:43:56
【问题描述】:

我做了很多研究,似乎找不到合适的解决方案。我对 PHP 很有信心。我还完成了一些关于Node.JSSocket.IO 的教程,我目前正在学习Symfony2,但我不知道如何将两者合并以实现我的目标。

我的目标是为我的应用的后端用户设置实时通知。这个应用程序是一个电子商务网站,我希望在后台通过管理面板右上角的视觉通知发出订单后立即得到警告。我的服务器使用FreeBSD

我的计划是使用Node.JSSocket.IO 来实现这一点。如果有更好的计划,我愿意听。否则,我找不到合适的资源来告诉我如何将Node.JSSocket.IO 包含到Symfony2 应用程序中。我使用 composer 来安装包,但我没有将 NPM 与 Symfony2 一起使用。

我找到了 this questionthis linkthis other question 来帮助我,但这些都没有告诉我如何在 Symfony2 应用程序中安装 Node.JS

如果有人可以帮助我完成步骤以使我开始开发此功能,我会很高兴。

谢谢!

【问题讨论】:

  • 你有没有想过/找到任何方法可以完全或大部分在 Symfony 中实现?那会是个愚蠢的想法吗?我应该硬着头皮安装节点吗?
  • 这取决于您要达到的目标。
  • 我基本上想同时在许多设备上创建一个即时消息系统,因此需要通过套接字发送和接收,但想使用 symfony2 身份验证。你有什么想法吗?

标签: node.js symfony websocket socket.io


【解决方案1】:

对于那些可能对答案感兴趣的人:

$ su -

安装 Node.JS

$ cd /usr/ports/www/node

$ make install clean

安装 NPM

$ cd /usr/ports/www/npm

$ make install clean

安装 Socket.IO

$ cd /path/to/your/project/js/public/files

$ npm install socket.io

开发代码

app.js

var http = require('http');
var fs = require('fs');

var server = http.createServer(function(req, res) {
    fs.readFile('./index.html', 'utf-8', function(error, content) {
        res.writeHead(200, {"Content-Type": "text/html"});
        res.end(content);
    });
});

var io = require('socket.io').listen(server);

io.sockets.on('connection', function (socket) {
    socket.on('newOrder', function () {
        socket.broadcast.emit('message', 'Nouvelle commande');
    });
});

server.listen(4321);

前端

<script src="{{ asset('http://localhost:4321/socket.io/socket.io.js') }}"></script>

<script>
    jQuery(function($) {
        var socket = io.connect('http://localhost:4321');

        $('form').on('submit', function() {
            socket.emit('newOrder', '1');
        });

    });
</script>

后端

<script>
    jQuery(function($) {    
        var socket = io.connect('http://localhost:4321');

        socket.on('message', function(message) {
            alert(message);
        });
    });

</script>

启动服务器

$ node app.js

就是这样!

【讨论】:

  • 只是想知道,关于 symfony,该脚本应该存在于后端的哪个位置?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多