错误:>无法连接到远程服务器。Socket 错误 = #2000。

错误:>无法连接到远程服务器。Socket 错误 = #2000。,第1张

端口问题
自查
确定自己没开防火墙 这个很关键,几乎所有的防火墙都默认关闭21端口
在cmd下打 telnet 127001 21 看端口是否开启
如果出现黑黑的一个页面说明21端口是开的
如果出现连接失败说明你自己的21端口有问题
服务器
在cmd下打 telnet 21824412840 21
测试是否是服务器21端口的问题
如果出现类似serv-u welcome 的提示说明服务器是正常的
如果出现连接失败估计是服务器的问题

其实单纯的靠socketio去访问跨域是可行的,出问题的是session,也就是cookie
你socketio服务端
ioset('authorization’, function (handshakeData, callback) {
/
}
肯定有这个认证,一旦跨域,handshakeDataheaderscookie是获取的服务器域的cookie
而express的session管理也是将cookie记录在服务端里的,只有你访问服务端域的时候,cookie才会生成,这时才有所谓的session。
appuse(session({
resave: true,
saveUninitialized: true,
secret: configsession_optionsecret,
cookie: {maxAge: 1000 60 60 24 1},
store: storeMemory
}));
在你服务端没有cookie记录的时候(默认为connectsid),直接通过客户端socketio去远程链接是生成不了cookie的,同时也就获取不到,在认证这块就出了问题,所以就走不通。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13484945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-16
下一篇 2023-08-16

发表评论

登录后才能评论

评论列表(0条)

保存