【问题标题】:working with sockets on PHP in a similar way as Node.js以与 Node.js 类似的方式在 PHP 上使用套接字
【发布时间】:2019-04-07 06:03:09
【问题描述】:

我刚刚下载并运行了非常基本的Node.js 聊天应用:

https://github.com/socketio/chat-example

它工作正常。

服务端代码很简单:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 3000;

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

http.listen(port, function(){
  console.log('listening on *:' + port);
});

现在我的问题是是否可以使用PHP 做类似的事情?

我听说过:

https://www.swoole.co.uk

https://github.com/swoole/swoole-src

https://reactphp.org

https://github.com/reactphp/socket

还有其他框架吗?

但是不知道是不是一个好的稳定的替代方案?

谢谢!

【问题讨论】:

  • 由于 PHP 作为守护程序运行的限制和环境限制,通常不鼓励使用它,但它适用于较小的应用程序 我已经为可编程逻辑控制器实现了一些 PHP 实现来发送和接收指令UDP。不过,我建议您查看其他语言(例如 Java)来完成它。

标签: javascript php node.js websocket socket.io


【解决方案1】:

我知道有一个名为Ratchet 的库。但根据我的经验,它的效果不是很好。如果你试图建立一个套接字连接,你应该总是只使用支持它的技术,比如 NodeJs

可以使用 curl 请求从您的 PHP 调用 NodeJS 服务器(快速),并让 NodeJS 服务器进行套接字连接。

【讨论】:

    【解决方案2】:

    试试 phpsocket.io1,它是 socket.io 的直接 PHP 实现,甚至还有出色的聊天应用示例。它坚如磐石,维护良好。就我个人而言,我尝试过的其他方法只是遇到了麻烦。

    您的示例代码在 PHP 中将如下所示:

    $io->on('connection', function($socket){
      $socket->on('chat message', function($msg){
        $io->emit('chat message', $msg);
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 2014-11-23
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      相关资源
      最近更新 更多