在它声明的文档中, io.origins()
采用字符串/来源数组(参见示例 https://socket.io/docs/server-api/#server-origins-value),而实际上它确实如此不是。 它仅在提供字符串而不是数组时才有效。
环境
io.origins(['http://localhost:3000'])
然后从localhost:3000
连接不起作用。
它仅在设置io.origins('http://localhost:3000')
时有效
我认为不应包含协议:
io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');
以字符串形式提供时与协议一起使用,以数组形式提供时不使用 😄
但感谢您的澄清!
我认为它是用indexOf
实现的,因此行为很时髦。
我将在文档中添加注释。
我刚刚遇到了同样的问题 - URL 中包含协议的数组,例如io.origins([https://subdomain.domain.ee:*])
不起作用,而io.origins([subdomain.domain.ee:*])
起作用。
虽然文档中的示例在数组示例中包含https://
: io.origins(['https://foo.example.com:443']);
。
查看这个commit ,似乎文档已更改为包含该示例,但它仍然发生在我身上吗?
我使用[https://subdomain.domain.ee:*]
作为 URL,它不起作用,也没有使用http://
(尽管在我的情况下它应该只能通过https://
访问)。 一旦我删除了协议,它就开始工作了。
我想我会在这里报告以防万一。 我可能错过了什么吗?
最有用的评论
我认为不应包含协议: