php给客户端发送信息,php – 使用Web套接字向客户端发送消息

从另一个控制器?您无法访问在另一个线程(即您的服务器)中运行的进程(php脚本).套接字服务器是连接的客户端之间的中心,等待消息,如果收到消息,则再次发送(如果被告知这样做).换句话说 – 如果您想向所有连接的客户端发送消息,您必须是其中之一.

您的初始代码看起来不错,服务器应该正常运行.所以,测试一下.

最简单的方法是打开一些telnet连接到你的socketserver并开始消息传递.

public function onOpen(ConnectionInterface $conn)

{

$this->clients->attach($conn);

$msg = "Connection established!\n"

echo $msg; // send server log to shell

sendMessageToAll($msg); // your initial function should be working

}

public function onMessage(ConnectionInterface $from, $msg) {

echo "Message from: {$conn->resourceId} received!\n"; //log again

sendMessageToAll($msg);

}

public function onError(ConnectionInterface $conn, \Exception $e) {

echo "Error: {$e->getMessage()}\n";

$conn->close();

}

另外,调试你的发送功能:

public function sendMessageToAll($msg){

foreach ($this->clients as $client) {

echo "Sending message to {$client->resourceId} \n";

$client->send($msg);

}

}

现在,打开一些telnet连接到你的socketserver端口(在服务器控制台中注意到):

telnet 127.0.0.1 8080

并从其中一个发送消息.同样,您应该从服务器收到通知,并通过每个telnet客户端接收消息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值