我们正在开发一个仅在现代浏览器(IE10 +)上运行的Web应用程序,原因各不相同.
我们实现的功能之一是Socket.io 1.x. 但是,默认情况下,Socket.io客户端会尝试支持较旧的浏览器,因此它会启动与长轮询的连接,然后将其更新到WebSockets.这是浪费时间和资源,因为我们知道浏览器支持WS.
我一直在搜索,我只能找到这个wiki页面,但是,它是关于Socket.io 0.9的.
最后,我找到了engine.io-client的文档(Socket.io-client基于1.x分支).这是我编写的代码,似乎正在运行.但是,我想知道它是否正确或者我做错了什么:
io.connect('https://...', {
upgrade: false,
transports: ['websocket']
})
Run Code Online (Sandbox Code Playgroud)
奇怪的是,仅仅将transports属性设置为数组websockets是不够的; 我也不得不禁用upgrade.它是否正确?
我做了一些新的发现.
随着transports设置为['websocket']只,它没有任何区别阉羊upgrade被启用.这是正常的吗?
我们有一个html站点和一个为该网站提供服务的node.js服务器.网站和服务器使用socke.io交换数据.我们在文档中找到了这个:
origin 默认为*:*
允许连接到Socket.IO服务器的原点.
我们的html.site已启用http://questionexample.com/page1.只有这个站点可以连接到我们的服务器.(但每个人都可以连接到该网站.)我们如何设置起源?
我似乎有一个问题,当我有超过1个dyno时,我在我的node.js应用程序上的socket.io广播在Heroku上似乎不起作用.一旦我将其缩放到1,它就能很好地工作.有什么我需要知道的吗?也许有不同的方式向所有dynos广播?请知道我是否需要提供更多信息或代码.