是否可以在客户端使用Sockets.io并在服务器端与基于PHP的应用程序通信?PHP甚至支持这种“长连接”的代码编写方式吗?
我找到的所有用于socket.io的示例代码似乎都是用于服务器端的node.js的,所以在那里没有帮助。
发布于 2011-11-18 16:25:06
现在回答这个问题可能有点晚了,但这是我发现的。
我不想争论nodes是否比php做得更好,这不是重点。
解决方案是:我还没有找到任何socket.io的实现。
但是有一些方法可以实现WebSockets。有一个this jQuery plugin允许你使用Websockets,但对于不支持的浏览器来说,它的性能会下降。在PHP端,this class似乎是PHP服务器中使用最广泛的。
发布于 2015-09-30 18:09:13
如果你真的想使用PHP作为你的socket.io后端,这是我找到的。两个socket.io php服务器端替代。
https://github.com/walkor/phpsocket.io
https://github.com/RickySu/phpsocket.io
第一个存储库的示例代码如下。
use PHPSocketIO\SocketIO;
// listen port 2021 for socket.io client
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
$socket->on('chat message', function($msg)use($io){
$io->emit('chat message', $msg);
});
});
发布于 2011-06-19 07:39:25
呃,你为什么要这么做?让PHP留在后端,让NodeJS/Sockets来做它的非阻塞工作。
这里有一些东西可以让你入门:http://groups.google.com/group/socket_io/browse_thread/thread/74a76896d2b72ccc
就我个人而言,我使用一个端点运行express,该端点专门侦听来自PHP的交互。
例如,如果我向用户发送了一封电子邮件,我希望socket.io向用户显示实时通知。
想要从socket.io到php的交互,那么你可以这样做:
var http = require('http'),
host = WWW_HOST,
clen = 'userid=' + userid,
site = http.createClient(80, host),
request = site.request("POST", "/modules/nodeim/includes/signonuser.inc.php",
{'host':host,'Content-Length':clen.length,'Content-Type':'application/x-www-form-urlencoded'});
request.write('userid=' + userid);
request.end();
说真的,PHP很适合做服务器端的事情,让它在这个领域中没有立足之地的连接。当你有websockets或flashsockets的时候,为什么要做长轮询呢?
https://stackoverflow.com/questions/6398887
复制相似问题