PHP 板


LINE

看板 PHP  RSS
我最近想写一个Websocket程式 而我的主机已有买SSL凭证 亦即网站是可以用https浏览的 而且是GeoTrust Inc.发行的凭证,并非自己写的凭证 但是我在Google chrome要试用Websocket时他跟我说https的网站只能使用「wss://」开 头的协定 那麽我想请问一下我是否要再买另外一个凭证才能使用「wss://」协定? 假设我的https网址是「https://example.com」 那「wss://example.com」照理来讲是不是应该也能用? 也就是买了https协定wss协定也就可以用? 因为我用同一个网域名称但把https改成wss之後就跟我说无法连线了 所以想问https和wss是否是互通、有关联性的? 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.44.7.20
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1512185949.A.877.html ※ 编辑: red0whale (114.44.7.20), 12/02/2017 11:40:13
1F:→ dododavid006: 用同一个凭证就好了 但不是把 https 改成 wss 是你12/02 11:50
2F:→ dododavid006: 要连线 websocket 的地方把网址的 ws 改成 wss 12/02 11:51
请问我要怎麽用wss连线Websocket? 一般的socket_create和socket_bind等函数应该没办法连wss吧… 我上网找了一下有个stream_context_set_option需要设定 但是他好像需要.pem档和.key档,这个.pem档和.key档是什麽?还有我要去哪里产生.pem 档和.key档呢? 看来要连线wss是一件蛮困难的事… ※ 编辑: red0whale (114.44.7.20), 12/02/2017 12:45:05
3F:→ dododavid006: pem 跟 key 档就是你 server 的 ssl 凭证 你现在的12/02 13:00
4F:→ dododavid006: 问题是 client 端还是 server 端 如果 server 端已12/02 13:00
5F:→ dododavid006: 经架好的话 其实改一下 client 端用的网址就行了12/02 13:01
您好 我不太清楚您所谓server端还是client端是指什麽 不过我只知道我用Chrome是可以浏览https的,也就是应该有装好凭证 ==== https://github.com/vakata/websocket 以上是我在Github上看到的可以用wss连线到Websocket的程式 只是我不晓得该怎麽去使用它 因为它还需要PEM encoded public 、 private keys和PEM certificate的密码才能连线w ss 然而我是承租外面的虚拟主机,并且请主机商帮忙安装凭证的 所以我不知道那些什麽凭证的到底需要填什麽 请让我知道这个「$cert」和「$pass」的参数必须填什麽才可以连线wss 谢谢 另外,附上我的程式和错误讯息给您: 《index.php》 <?php require "src/Base.php"; require "src/Client.php"; require "src/Server.php"; require "src/WebSocketException.php"; // this handler will forward each message to all clients (except the sender) $server = new \vakata\websocket\Server('wss://我已安装凭证的网域:8080','./serv er.pem'); $server->onMessage(function ($sender, $message, $server) { foreach ($server->getClients() as $client) { if ((int)$sender['socket'] !== (int)$client['socket']) { $server->send($client['socket'], $message); } } }); $server->run(); ?> 《错误讯息》 [02-Dec-2017 14:11:06 Asia/Taipei] PHP Fatal error: Uncaught exception 'vakata \websocket\WebSocketException' with message 'Could not create server' in /publ ic_html/websocket-master/src/Server.php:51 Stack trace: #0 /public_html/websocket-master/index.php(7): vakata\websocket\Server->__cons truct('wss://...', './server.pem') #1 {main} thrown in /public_html/websocket-master/src/Server.php on line 51 《server.pem》(中间恕删) -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- ※ 编辑: red0whale (114.44.7.20), 12/02/2017 14:19:10
6F:推 newversion: 施主你把private key贴出来了!12/02 15:05
7F:推 newton2009: XDD RSA private key ...12/02 15:17
8F:推 Neisseria: 直接换 key 吧,保重 =_=...12/02 15:58
9F:→ newversion: 有看过 chmod 777 prikey 然後PHP有:12/02 16:24
10F:→ newversion: <?php readfile $_GET("f") XDD12/02 16:25
好吧… 我不懂那是什麽 我以为那只是一堆文字而已 话说中间都删掉了也是有人能全部破解吗? ※ 编辑: red0whale (114.44.7.20), 12/02/2017 19:02:20 请问有人能告诉我怎麽让wss://开头的Websocket可以连线? 我只是想做一个比较不会消耗伺服器资源的聊天室而已 但是由於我的网站是用https,而浏览器规定https的网站一定要使用wss://开头的Websoc ket 所以我不得不用wss 如果https可以使用ws://开头的Websocket,我也不必这麽大费周章找遍所有网页了(因为 连线ws://开头的Websocket我知道怎麽做) 现在只差如何成功连线wss://开头的Websocket 请各位一定要协助我 也希望各位提供推荐的可使用wss连线的Websocket聊天室程式 谢谢 ※ 编辑: red0whale (114.44.7.20), 12/02/2017 22:25:37
11F:→ dododavid006: 那个中间要解开应该不太可能啦 然後你那两段是在同12/02 22:46
12F:→ dododavid006: 一个档案吗 一般 ssl 设定时应该会拆成两个档案才对12/02 22:47
13F:→ dododavid006: 应该是把第一段的 BEGIN 到 END 存成 .pem 然後第二12/02 22:47
14F:→ dododavid006: 段存成 .key 再拿去给你的程式试试看 如果错了再交12/02 22:48
15F:→ dododavid006: 换过来吧 因为老实说 我常常分不清楚这两个档案XD12/02 22:49
16F:→ dododavid006: 刚刚翻了一下文件 应该不用拆两个档案才对 sorry12/02 22:51
谢谢,不过我试了.pem之後还是无法成功 我是用下面这个来作为我的测试版聊天室: https://github.com/Flynsarmy/PHPWebSocket-Chat 用8000和8080埠的ws://协定在http://浏览的情况下都能连线成功且可以聊天(前提是要 先执行server.php,而且server.php的「wsStartServer」的IP和Port都要改成自己的网 站) 但问题是我必须让我的网站以https方式呈现 而浏览器要求https的网站只能以wss://开头的Websocket连线 问题就是要怎麽让「wss://...」也能连线成功 也就是要怎麽用PHP create「wss://...」的Websocket... 我试过千百遍都没用,浏览器一直显示: Websocket connection to 'wss://...:8080/' failed: Error in connection establis hment: net::ERR_CONNECTION_TIMED_OUT 好头疼… 我好想开始放弃Websocket改用以往传统的Comet长轮询了…
17F:→ dododavid006: 你 8080 port 有在使用吗?12/02 22:55
没有 ※ 编辑: red0whale (114.44.7.20), 12/02/2017 23:08:02
18F:→ dododavid006: 因为它讯息是 server 开不起来 我猜有没有可能是12/02 22:56
19F:→ dododavid006: port 占用住了 你有开其它的网页伺服器吗12/02 22:56
问题是即使某个Port没被占用它那个wss Websocket还是没有创建成功呀 我的问题点是怎麽用PHP创立「wss://...」开头的Websocket... ※ 编辑: red0whale (114.44.7.20), 12/02/2017 23:11:06
20F:→ dododavid006: 对了 你试试看建 websocket server 时中间的网址改12/02 23:12
21F:→ dododavid006: 成用 0.0.0.012/02 23:12
没用,error_log跟我说connection refused ※ 编辑: red0whale (114.44.7.20), 12/02/2017 23:17:03
22F:→ jfcherng: 以前我的作法是PHP开内网ws, NGINX/Apache 做SSL与proxy 12/02 23:48







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP