首页 > 解决方案 > 如何使用 php 和 socket.io 连接前端?

问题描述

我想使用带有 socket.io 的 PHP 文件连接前端如何将此 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);

标签: phphtmllaravelrabbitmq

解决方案


推荐阅读