栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在PHP中创建WebSocket服务器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在PHP中创建WebSocket服务器

我和您最近在同一条船上,这是我的工作:

1)我使用phpwebsockets代码作为如何构建服务器端代码的参考。(您似乎已经在执行此操作,并且正如您所指出的,由于多种原因,该代码实际上并不起作用。)

2)我使用PHP.net阅读有关phpwebsockets代码中使用的每个套接字函数的详细信息。通过这样做,我终于能够理解整个系统在概念上是如何工作的。这是一个很大的障碍。

3)我阅读了实际的WebSocket草案(请对其进行网络搜索,因为每个帖子不能发布两个以上的链接)。在开始深入研究之前,我不得不阅读了很多次。在整个过程中,您可能不得不一次又一次地回到本文档,因为它是拥有正确,最新信息的权威资源。有关WebSocket
API的信息。

4)我根据#3草案中的说明对正确的握手过程进行了编码。这还不错。

5)握手后,我一直收到从客户端发送到服务器的一堆乱码,直到我意识到数据已被编码并且必须被屏蔽后,我才能弄清楚为什么。以下链接在这里对我有很大帮助:

请注意,此链接上的可用代码存在许多问题,如果不做进一步修改,将无法正常工作。

6)然后,我遇到了以下SO线程,该线程清楚地说明了如何正确地编码和解码来回发送的消息:如何在服务器端发送和接收WebSocket消息?

这个链接真的很有帮助。我建议在查看WebSocket草案时咨询它。它将有助于使草案中的内容更有意义。

7)至此我几乎完成了工作,但是使用WebSocket开发的WebRTC应用程序出现了一些问题,因此我最终在SO上问了自己一个问题,最终我解决了。要参考问题和答案,请在网络上搜索“
SORTC候选人信息末尾的这些数据是什么?” (不带引号)。

8)至此,我几乎可以正常工作了。我只需要添加一些其他逻辑来处理连接的关闭,就完成了。

这个过程总共花了我大约两个星期。好消息是,我现在非常了解WebSocket,并且能够从头开始制作自己的客户端和服务器脚本,效果很好。希望所有这些信息的总汇能够为您提供足够的指导和信息,以编写您自己的WebSocket
PHP脚本。祝好运!

编辑#2
:虽然我仍然喜欢使用PHP来完成许多服务器端相关的工作,但我不得不承认我最近确实很热身使用Node.js,主要原因是因为它的设计更好。比PHP(或任何其他服务器端语言)更能处理WebSocket。因此,我最近发现,在服务器上设置Apache/ PHP和Node.js并使用Node.js运行WebSocket服务器以及使用Apache/PHP进行其他操作要容易得多。在无法安装/使用Node.js forWebSocket的共享托管环境中,您可以使用Heroku等免费服务来设置Node.jsWebSocket服务器并进行跨域从您的服务器请求它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号