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

D4V*_*V1D 4 websocket node.js symfony socket.io

我做了很多研究,似乎找不到合适的解决方案.我对PHP充满信心.我也做了一些教程Node.JS,Socket.IO而且我正在学习,Symfony2但我看不出如何将两者合并以实现我的目标.

我的目标是为我的应用的后端用户设置实时通知.这个应用程序是一个电子商务网站,我希望一旦通过管理面板右上角的可视通知下达订单,就会警告幕后管理员.我的服务器使用FreeBSD.

我的计划是使用Node.JSSocket.IO实现这一目标.如果有更好的计划,我愿意听到它.否则,我无法找到适当的资源来告诉我怎么可以包括Node.JSSocket.IO一个Symfony2应用程序.我使用composer来安装bundle,但我没有将NPM与Symfony2一起使用.

我发现了这个问题,这个链接其他问题可以帮助我,但这些都没有告诉我如何Node.JSSymfony2应用程序中安装.

如果有人可以帮我完成让我开始开发此功能的步骤,我会很高兴.

谢谢!

D4V*_*V1D 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);
Run Code Online (Sandbox Code Playgroud)

前端

<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>
Run Code Online (Sandbox Code Playgroud)

后端

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

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

</script>
Run Code Online (Sandbox Code Playgroud)

启动服务器

$ node app.js

就这样!