使用 SSL 创建 PHP WebSocket

Posted

技术标签:

【中文标题】使用 SSL 创建 PHP WebSocket【英文标题】:Create PHP WebSocket with SSL 【发布时间】:2016-01-27 07:55:02 【问题描述】:

我的网站上有一个 websocket 聊天,我最近在我的网站上添加了 SSL 证书。当我用http 打开我的网站时,聊天就开始了。当我用https 打开它时,它不起作用。我使用 javascript 作为我与ws:// 协议聊天的客户端。由于我的页面上有 SSL 加密,我将该协议更改为 wss://,但它不会那样工作。这是我创建套接字的 php 服务器代码的一部分:

$host = 'localhost'; 
$port = '9000'; 
$null = NULL;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);

socket_bind($socket, 0, $port);

socket_listen($socket);

$clients = array($socket);

【问题讨论】:

似乎您缺少 wss 的 ssl serteficate 配置,您可以在这里查看第一个答案:***.com/questions/6969316/securing-websockets 上面写着You will need to have a signed SSL certificate configured with your websocket server, but that's pretty much required anyways. 是的,我知道这一点,但是如何将我的证书添加到 php socket 【参考方案1】:

如何将证书添加到 php 套接字?

使用不同的函数调用。

http://php.net/manual/en/function.stream-socket-client.php

并设置正确的套接字选项

http://php.net/manual/en/context.ssl.php

【讨论】:

你能发布一个示例代码吗?我不应该使用stream_socket_server 而不是stream_socket_client吗?

以上是关于使用 SSL 创建 PHP WebSocket的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 PHP SOAP 客户端以在 SSL 下调用 WCF Web 服务?

PHP PDO 使用 SSL 连接到 MS SQLServer Express

sh 翻译:“OS X 10.10 Yosemite本地开发环境,Apache,PHP和MySQL与Homebrew”9。创建〜/ Sites / ssl / ssl-shared-cert.inc需

php中使用crul时,怎么设置ssl的版本

使用 PHP 检查页面是不是被 SSL 访问

PHP 配置默认SSL CA证书