相关疑难解决方法(0)

为什么我在尝试SSL_write时遇到"错误:1409F07F:SSL例程:SSL3_WRITE_PENDING:写入重试错误"错误?

尝试SSL_write时是否收到以下错误:

错误:1409F07F:SSL例程:SSL3_WRITE_PENDING:错误的写入重试

openssl

14
推荐指数
1
解决办法
2万
查看次数

在 PHP 中:OpenSSL 错误消息:错误:1409F07F:SSL 例程:SSL3_WRITE_PENDING:错误写入重试

我正在尝试在 PHP 中使用 SSL/TLS 连接发送大量数据。如果数据块不是很大,或者如果我不使用 TLS,但我需要(接近 2MiB),该fwrite函数会显示警告:

警告:fwrite():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:1409F07F:SSL 例程:SSL3_WRITE_PENDING:错误写入重试

我用来连接客户端的相关代码:

$cntxt = stream_context_create(array('ssl' => array('local_cert' => 'certificate.pem')));
$server = stream_socket_server('tls://127.0.0.1:8080', $errno, $errstr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $cntxt);

// Wait for client connection //

$client = stream_socket_accept($server);
// Use non-blocking socket to allow answering many clients at a time
stream_set_blocking($client, 0);
$clients[] = $client;
Run Code Online (Sandbox Code Playgroud)

发送数据时,它会附加到缓冲区,并且不时为每个客户端和链接缓冲区调用此函数:

function trySend($client, &$buffer) {
    if (strlen($buffer)) {
        $len = fwrite($client, $buffer);
        $buffer = substr($buffer, $len);
    }
}
Run Code Online (Sandbox Code Playgroud)

正如我所说,我的代码适用于少量数据或正常(非 TLS)连接。我搜索了这个错误并找到了http://www.openssl.org/docs/ssl/SSL_write.html

当长度为 num 的 …

php ssl websocket

5
推荐指数
1
解决办法
6865
查看次数

使用Api推送通知

我试图使用Api推送通知,我没有得到任何错误消息,我没有得到任何响应.

用PHP脚本检查了Apple推送通知服务

并相应地应用了我的代码中的更改但仍无效.

我无法得到serverId我必须使用的方法

$device = 'fbb5a9c71066794d57fee33b4005a89f1bb8941a68660fd6e91f466be1299ab6'; // My iphone deviceToken
$payload['aps'] = array(
    'alert' => 'This is the alert text',
    'badge' => 1,
    'sound' => 'default'
);

$payload['server'] = array(
    'serverId' => 1,
    'name' => 'keyss.in'
);

$payload = json_encode($payload);

$apnsCert = 'apple_push_notification_production.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device)) . chr(0) . …
Run Code Online (Sandbox Code Playgroud)

php push-notification apple-push-notifications ios

2
推荐指数
1
解决办法
1323
查看次数