jjzjj

php - 如何在 PHP 中实现事件驱动代码?

是否可以在PHP中实现事件驱动程序?类似于javascript的东西。例如,尝试打开一个socket(open_socket)并执行一些其他的command(do_something_else),而不是等待socket请求的成功响应。得到成功响应后执行callback_execute。//--------------------------------------------------------------------publicfunctionopen_socket(){$this->socketResource=fsockopen($this->nodeIp,$this->po

php - "Connection refused"错误在 php 中的 socket_connect

我正在尝试将一些代码从perl转换为php。Perl代码如下所示:我的$handle=Connect($port,$host);我正在尝试使用套接字在php中做同样的事情。我试过socket_create和socket_connect,socket_create和socket_bind,以及fsocketopen。因此,我遇到了“连接被拒绝”或“权限被拒绝”的错误消息:socket_connect()[function.socket-connect]:unabletoconnect[111]:Connectionrefusedin我不确定这是我需要解决的问题,还是权限问题,因为perl

PHP:当客户端在写入时断开连接时,socket_write 挂起

当我在我的iOS应用程序中接收数据时(收到了一些数据,但不是全部)我故意退出该应用程序并且socket_write卡在服务器上。相关代码如下:error_log("startwrite");$sent=socket_write($client,$string,$length);error_log("endwrite");我在错误日志中收到了“开始写入”消息,但仅此而已,它一直挂起,直到我重新启动php程序。我尝试设置超时,但后来我尝试上传一个大文件,看起来它在上传完成之前就超时了。我认为超时是一段时间不活动,而不是客户端连接的总时间。无论如何,我们将不胜感激。我假设如果套接字断开连接,

php - php中的可变长度数据包

我正在接收通过UDP发送到我的服务器的数据包。我正在使用socket_read来读取数据,并且一切正常。但是我遇到了一个错误。在我的例子中,socket_read的长度参数并不总是相同的。数据的长度可以在50-150字节之间的任何范围内。保持不变的一件事是数据集以\x00字节结尾。在遇到这个字节之前,如何让读取函数始终读取?我已经尝试过PHP_NORMAL_READ标志,但文档说它只以\n或\r结尾,这真的不是我想要的(试过它对我的数据不起作用)。同时,socket_read的php页面在length参数描述中指出,Themaximumnumberofbytesreadisspecif

php - 使用 Ajax 或 Socket 的推拉技术

我有一个网站需要像Facebook一样实时向在线客户端发送通知,经过更多的谷歌搜索,我发现了很多关于推拉技术的文档。我从这个文档中找到了使用Ajax或套接字实现它们的方法。我需要知道什么是最适合我的情况,以及如何使用javascript或jquery和php对其进行编码。 最佳答案 在不详细了解您的案例的情况下,我不能说什么对您的案例最好。在大多数情况下,让客户端每隔一两秒检查一次服务器就足够了,询问是否发生了新的事情。大多数时候我更喜欢它而不是套接字,因为它可以在每个Web服务器上运行而无需任何配置更改,并且可以在任何支持AJAX

php - 如何执行命令telnet php

我有一个代码可以使用telnet连接到teamspeak服务器。有人可以帮我发送命令吗?我的代码:我想发送命令“help”这段代码只返回:TS3WelcometotheTeamSpeak3ServerQueryinterface,type"help"foralistofcommandsand"help"forinformationonaspecificcommand. 最佳答案 像这样:";}else{echo"Connectionfailed!";}fputs($socket,"help\r\n");$buffer="";whil

javascript - Laravel Homestead,Socket.io 连接被拒绝

我正在使用laravel事件广播、socket.io、node.js和redis将通知实时传递到客户端。代码相当简单,当我向服务器上的“/”发出一个获取请求时,一个事件将被触发,一些数据将被广播到所有在channel上监听这个事件的浏览器(客户端)(测试-channel)。Routes.php内容:Route::get('/','uses'=>function(){Event::fire(newApp\Events\UserHasRegistered('DummyData'));returnview('test');}]);UserHasRegistered事件类:classUserH

php - php中的持久本地域套接字

我找到的这个问题的答案(例如here、here和here)都涉及pfsockopen(),它似乎适合非本地套接字连接。但是,到目前为止我编写的代码使用php通过本地连接访问C++服务器。我希望这种连接是持久的(这样我就可以顺便将它用于Comet)。这是我的非持久性版本:我发现,现在我不能简单地将“$sock”保存为$_SESSION变量并在每次调用此脚本时访问它。关于如何将其变成持久连接的任何提示? 最佳答案 正如您提供的链接指出的那样,php不是一种持久性语言,并且无法在session(即页面加载)之间保持持久性。您可以通过将第二

php - Websockets,并识别独特的同行[PHP]

我是websockets的新手。我刚刚完成了我的第一个多用途套接字服务器,它在同一个套接字中提供3种类型的消息。此服务器的预期用途如下:chatmessagesrealtimemarketdatauserspecificalerts前两个功能运行良好,我非常高兴,但是在识别和链接特定帐户连接中的对等点时,我完全不知所措,以便我可以向特定用户提供待处理的警报通知。基本上,我将警报消息存储在数据库表中,如下所示:Table:uc_notificationsaccount(varchar50)|message(varchar255)|id(primary,AI)|seen(default0)

php - stream_socket_client 通过 http 代理

我正在研究APNS(Apple推送通知服务)。我正在按照教程所说的那样做:$ctx=stream_context_create();stream_context_set_option($ctx,'ssl','local_cert','ck.pem');stream_context_set_option($ctx,'ssl','passphrase',$passphrase);$fp=stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195',$err,$errstr,60,STREAM_CLIENT_CONNECT|