Node.js sail套接字io连接到与传入url不同的url

Node.js sail套接字io连接到与传入url不同的url,node.js,sockets,socket.io,sails.js,sails.io.js,Node.js,Sockets,Socket.io,Sails.js,Sails.io.js,在生产环境中,当我尝试从客户端url“”连接到位于“”的sails中的套接字客户端时,我得到一个404 https://something.com/socket.io/?__sails_io_sdk_version=0.13…owser&__sails_io_sdk_language=javascript&EIO=3&transport=polling&t=LFGJG5g 404 (Not Found) 当我在本地机器上的sails中建立套接字连接时,它就会工作

在生产环境中,当我尝试从客户端url“”连接到位于“”的sails中的套接字客户端时,我得到一个404

https://something.com/socket.io/?__sails_io_sdk_version=0.13…owser&__sails_io_sdk_language=javascript&EIO=3&transport=polling&t=LFGJG5g 404 (Not Found)
当我在本地机器上的sails中建立套接字连接时,它就会工作

我的本地配置。 客户端主机

http://localhost:8080/
https://something.com/ 
API主机

http://localhost:1337/
https://something.com/api/
HTML

我的生产配置 客户端主机

http://localhost:8080/
https://something.com/ 
API主机

http://localhost:1337/
https://something.com/api/
JS

我确保autoConnect被公然设置为false,并且唯一的连接是通过connect()函数进行的。似乎无论我将什么字符串传递到connect()函数中(仅在生产环境中),它都假定客户端url()并从生产环境url()中删除后缀/api/。


io.sails.url=https://myapp.com'; // 或者你想去哪里

io.sails.url=https://myapp.com'; // 或者你想去哪里

您是否意识到
https://something.com/api/
https://something.com
主机是否完全相同<代码>/api是路径的一部分,而不是主机定义。因此,无论哪种情况,您都试图连接到主机
https://something.com
。如果您认为您在这里连接到两个独立的服务器进程,那么在您的生产环境中就不是这样了/api/通过nginx映射到节点服务器。我的api是通过/api/path提供的,如果该路径上的套接字具有相同的主机但路径不同,您建议我如何连接到该路径上的套接字。感谢您的帮助。您必须了解如何使用socket.io的自定义路径,因为默认的socket.io连接代码可能会删除
/api
前缀,而只是尝试使用自己的路径单独连接到主机。socket.io的自定义路径前缀可能是可能的,但我不知道该怎么做。您可以将
path
选项传递给
io.connect()
选项哈希。我只发现有人提到过。应该是一个起点。你意识到
https://something.com/api/
https://something.com
主机是否完全相同<代码>/api是路径的一部分,而不是主机定义。因此,无论哪种情况,您都试图连接到主机
https://something.com
。如果您认为您在这里连接到两个独立的服务器进程,那么在您的生产环境中就不是这样了/api/通过nginx映射到节点服务器。我的api是通过/api/path提供的,如果该路径上的套接字具有相同的主机但路径不同,您建议我如何连接到该路径上的套接字。感谢您的帮助。您必须了解如何使用socket.io的自定义路径,因为默认的socket.io连接代码可能会删除
/api
前缀,而只是尝试使用自己的路径单独连接到主机。socket.io的自定义路径前缀可能是可能的,但我不知道该怎么做。您可以将
path
选项传递给
io.connect()
选项哈希。我只发现有人提到过。应该是一个起点。