在Symfony2应用程序中包含Node.JS + Socket.IO
我做了很多研究,看来我找不到合适的解决办法。 我对PHP很有信心。 我也做了一些关于Node.JS
和Socket.IO
教程,目前我正在学习Symfony2
但是我看不出如何合并这两个来实现我的目标。
我的目标是为我的应用程序的后端用户设置实时通知。 这个应用程序是一个电子商务网站,我希望在pipe理面板右上angular的一个可视通知命令后立即警告幕后pipe理员。 我的服务器使用FreeBSD
。
我的计划是使用Node.JS
和Socket.IO
来实现这一点。 如果有更好的计划,我愿意听到。 否则,我找不到合适的资源来告诉我如何将Node.JS
和Socket.IO
到Symfony2
应用程序中。 我使用composer php安装包,但我没有使用Symfony2 NPM。
我已经find了这个问题 , 这个链接和其他问题来帮助我,但没有一个告诉我如何在Symfony2
应用程序中安装Node.JS
如果有人可以帮我完成这些步骤来开始开发这个function,我会很高兴。
谢谢!
对于那些可能对这个答案感兴趣的人:
$ 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
就这样!