مشکل با ssl جهت انجام websocket بر روی سرور
سلام دوستان
من یه برنامه چت با استفاده از websocket که با httpکار میکنه نوشتم و مسیر دهی کلاینت به سرور به شکل ws://185.185.185.185:server.php
هست حالا می خوام با پروتکل https و ssl رایگان این رو پیاده سازی کنم که مسیر کلاینت برای ارسال میشه wss://185.185.185.server.php هرکاری کردم که php خودش رشته های ssl رو بخونه نشد که نشد .
دوستانی که تونستند اینکار رو بکنند لطفا راهنمایی کنند یا اکانت تلگرام و.. بدن هزینه یاد دادنشون رو پرداخت می کنم.
یکی از نمونه کدهایی که تو سرور نوشتم
$context = stream_context_create();
// local_cert must be in PEM format
stream_context_set_option($context, 'ssl', 'local_cert', '/home/onli/domains/line.n/public_html/sslpem.pem');
stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
stream_context_set_option($context, 'ssl', 'verify_peer', false);
// Create the server socket
$server = stream_socket_server('ssl://185.185.185.185:5529', $errno, $errstr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);
while(true)
{
$buffer = '';
$client = stream_socket_accept($server);
if($client) {
// Read until double CRLF
while( !preg_match('/\r?\n\r?\n/', $buffer) )
$buffer .= fread($client, 2046);
// Respond to client
fwrite($client, "200 OK HTTP/1.1\r\n"
. "Connection: close\r\n"
. "Content-Type: text/html\r\n"
. "\r\n"
. "Hello World! " . microtime(true)
. "\n<pre>{$buffer}</pre>");
fclose($client);
}
}
نقل قول: مشکل با ssl جهت انجام websocket بر روی سرور
برای ساخت چت می تونی از cphalcon و swoole استفاده کنی سرعتشون بهتره خودم امتحانش کردم خیلی سرعت خوبی داشت و چیزی از سوکت در node.js و پایتون کم نداشت. این سوکتی که باهاش کار میکنی زیاد جالب نیست.
این cphalcon نیاز به تنظیمات داره ولی swoole توی نسخه ی 7.3 زبان php هست و توی برخی سی پنل ها می تونی فعال کنی ولی چون فایروال پورتش رو مسدود میکنه کار نمیکنه بهتره از سرور مجازی استفاده کنی.
توی ویندوزم بخوای باهاش کار کنی بهتره cygwin رو نصب کنی.
نمونه کدهاش اینجا هست:
https://www.swoole.co.uk/