如何使用php和socket.io连接前端?

时间:2019-12-09 12:10:45

标签: php html laravel rabbitmq

我想使用PHP文件与socket.io连接前端 如何将该js文件代码转换为PHP?

我想在Laravel中实现此功能,但是现在我已经在PHP中进行了测试

我已经在NODE JS的帮助下进行了连接,并且工作正常。

HTML文件:

<!DOCTYPE html>
<html>
   <head>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
      <script>
         (function () {
            const onMessage = (data) => {
               console.log(data);
            };
            var connectToServer = function () {
               var socket = io.connect('http://localhost:8000');
               socket.on('message-name', onMessage);
            };
            connectToServer();

         })();

      </script>
   </head>
   <body>
   </body>
</html>

Js文件:

var amqp = require('amqp'),
    express = require('express'),
    http = require('http'),
    app = express();


var server = http.createServer(app);

var io = require('socket.io').listen(server),
    rabbitMq = amqp.createConnection({url: "amqp://***:***@x.x.x.x:1234//"});

// add this for better debugging
rabbitMq.on('error', function(e) {
  console.log("Error from amqp: ", e.message);
});

// Wait for connection to become established.
rabbitMq.on('ready', function () {
  rabbitMq.queue('1', {passive : true} , function(queue) {
            queue.bind('#');
            queue.subscribe(function (message) {
                  // Print messages to stdout
                  var buff = JSON.stringify(message);
                  var bufferData = JSON.parse(buff);
                  var messageData = bufferData['data']['data'];
                  io.sockets.on('connection', function (socket) {
                   socket.emit('message-name', messageData);
                  });
            });
        });
});

server.listen(8000);

0 个答案:

没有答案