代码之家  ›  专栏  ›  技术社区  ›  D4V1D

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

  •  4
  • D4V1D  · 技术社区  · 11 年前

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

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

    我的计划是 节点JS 插座.IO 为了实现这一点。如果有更好的计划,我很乐意听到。否则,我找不到合适的资源来告诉我如何包括 节点JS 插座.IO 符号2 应用程序。我使用composer来安装捆绑包,但我没有在Symfony2中使用NPM。

    我找到了 this question , this link this other question 帮助我,但这些都没有告诉我如何安装 节点JS 在一个 符号2 应用程序。

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

    谢谢

    1 回复  |  直到 9 年前
        1
  •  10
  •   D4V1D    11 年前

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

    $ su -

    安装Node.JS

    $ cd /usr/ports/www/node

    $ make install clean

    安装NPM

    $ cd /usr/ports/www/npm

    $make安装干净

    安装Socket.IO

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

    $ npm install socket.io

    开发代码

    应用程序.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

    这就是全部!