作者:柯云,来自原文地址  
						微信小程序的websocket必须是wss协议,  
						于是捣鼓给swoole的websocket server加入SSL支持。 
					
						第一步,准备好自己的域名,备案等,就不啰嗦了。 
					
						第二步,到阿里云申请免费的证书服务。  
					
						  
					
						按照提示一步步进行,最后下载得到一个pem文件和一个key文件。  
						将文件上传到服务器上。 
					
						第三步,将证书对应的域名,解析到swoole服务器的IP上。 
					
						第四步,重新编译安装swoole,加入ssl支持 
					
						  
					
 
					
						- 
							cd swoole-src
 
						- 
							phpize
 
						- 
							./configure --enable-openssl
 
						- 
							make && make install
 
					 
					
						当然,要先确保你的系统安装了openssl,php也安装了openssl扩展 
					
						第五步,编码,创建支持ssl的websocket服务 
					
						  
					
 
					
						- 
							$ws = new swoole_websocket_server("0.0.0.0", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL);
 
						- 
							$key_dir = "/usr/local/ca";
 
						- 
							 
 
						- 
							$ws->set(array(
 
						- 
							'worker_num' => 4,
 
						- 
							'ssl_cert_file' => $key_dir.'/xxxxxxxxxxxx.pem',
 
						- 
							'ssl_key_file' => $key_dir.'/xxxxxxxxxxxx.key',
 
						- 
							));
 
					 
					
						以上,基本实现了一个wss协议的websocket服务 
					
						ps:如基于web来连接wss,web也需要是https 
					
						nginx配置HTTPS支持 
					
						修改Nginx配置文件,让其包含新标记的证书和私钥: 
					
						  
					
 
					
						- 
							server {
 
						- 
							server_name YOUR_DOMAINNAME_HERE;
 
						- 
							listen 443;
 
						- 
							ssl on;
 
						- 
							ssl_certificate /usr/local/nginx/conf/xxxxxxxxxxxx.pem;
 
						- 
							ssl_certificate_key /usr/local/nginx/conf/xxxxxxxxxxxx.key;
 
						- 
							}
 
					 
					
						重启nginx。 
					
						crt文件可以直接用我们的pem文件替换 
				 
			 |