PDA

View Full Version : حرفه ای: مشکل با ssl جهت انجام websocket بر روی سرور



MAHDIACTION
شنبه 21 تیر 1399, 10:41 صبح
سلام دوستان
من یه برنامه چت با استفاده از 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);
}
}

ravand
یک شنبه 22 تیر 1399, 06:57 صبح
برای ساخت چت می تونی از cphalcon و swoole استفاده کنی سرعتشون بهتره خودم امتحانش کردم خیلی سرعت خوبی داشت و چیزی از سوکت در node.js و پایتون کم نداشت. این سوکتی که باهاش کار میکنی زیاد جالب نیست.

این cphalcon نیاز به تنظیمات داره ولی swoole توی نسخه ی 7.3 زبان php هست و توی برخی سی پنل ها می تونی فعال کنی ولی چون فایروال پورتش رو مسدود میکنه کار نمیکنه بهتره از سرور مجازی استفاده کنی.
توی ویندوزم بخوای باهاش کار کنی بهتره cygwin رو نصب کنی.
نمونه کدهاش اینجا هست:
https://www.swoole.co.uk/