在Symfony2应用程序中包含Node.JS + Socket.IO

4
我已经做了很多研究,但似乎找不到合适的解决方案。我对 PHP 很有信心。我也做了一些关于 Node.JS 和 Socket.IO 的教程,并且目前正在学习 Symfony2,但是我不知道如何将两者结合起来实现我的目标。
我的目标是为我的应用程序的后端用户设置实时通知。这个应用程序是一个电子商务网站,我希望在管理面板的右上角通过视觉通知尽快地警告幕后管理员,一旦有订单产生。我的服务器使用 FreeBSD。
我的计划是使用 Node.JS 和 Socket.IO 来实现这一目标。如果有更好的计划,我愿意听取建议。否则,我找不到合适的资源来告诉我如何将 Node.JS 和 Socket.IO 包含到 Symfony2 应用程序中。我使用 composer 安装 bundle,但我没有在 Symfony2 中使用过 NPM。

我找到了这个问题, 这个链接这个问题来帮助我,但是它们都没有告诉我如何在Symfony2应用程序中安装Node.JS

如果有人能帮我完成这个功能的开发步骤,我会很高兴。

谢谢!


你有没有想到或者找到任何完全或大部分使用Symfony实现的方法?这是一个愚蠢的想法吗?我应该直接安装node吗? - Dom Weldon
这取决于你想要实现什么。 - D4V1D
我想要在多个设备上实现即时通讯系统,因此需要通过套接字进行发送和接收,但我希望使用Symfony2身份验证。你有什么想法吗? - Dom Weldon
1个回答

10

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

$ 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中,后端的哪个地方应该放置那个脚本? - John Doe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接