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

标签 node.js symfony websocket socket.io

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

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

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

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

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

谢谢!

最佳答案

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

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

就是这样!

关于node.js - 在 Symfony2 应用程序中包含 Node.JS + Socket.IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103731/

相关文章:

mysql - ROLLBACK 不会回滚事务 [NodeJS、MySQL]

node.js - cloudfoundry : how to use filesystem

交响乐 3 : Configure cache component pools with Redis

authentication - 使用 chrome WebSockets 时如何传递额外的 cookie?

node.js - NodeJS 与 Einaros WebSocket : Client Ping Server VS Server Ping Client

linux - 无法在Linux服务器上安装node.js

node.js - 如何根据用户名和密码计算基本授权 header

Symfony2 FOSUserBundle 覆盖配置文件形式 : field form empty?

php - Symfony 中的 ResponseListener 导致在开发模式下来自 apache 的重复 header 'Content-Type'

ruby-on-rails - Action Cable 和 Faye 一样吗?