我最近在浏览我的Laravel聊天练习应用程序时,一直在阅读像Pusher和Socket.io这样的websockets和SaaS.我不明白的是,为什么我们需要外部软件来建立websocket连接?像Laravel这样的服务器代码不能像Vue.js那样直接建立与前端的连接吗?为什么要像Pusher和Socket.io那样经历中间人?抱歉,这个菜鸟问题.
所以我用NodeJS + ExpressJS服务器设置了socket.io,一切运行良好.唯一的问题是我刚刚意识到我的emit()调用是使用回退XHR方法将事件发送到我的服务器而不是它打开的websocket连接.
当我查看连接时,我看到的只有一些2probe,3probe然后是一堆2和3通过websocket发送.这种连接似乎是开放的并且正常工作,那么为什么它会回退到使用XHR请求的长轮询?
我现在不提供任何代码,因为我不确定哪个部分是相关的,因为代码的功能方面工作得很好,我只想在XHR上使用websocket.如果您希望看到任何代码,请告诉我
UPDATE
所以我正在测试插座多一点,我添加了几个emit()电话.看起来第一个1或2个发射器使用长轮询,然后突然转换为使用websocket.只是好奇这里发生了什么.