FeathersJS socketio客户端断开连接?
Posted
技术标签:
【中文标题】FeathersJS socketio客户端断开连接?【英文标题】:FeathersJS socketio client disconnect? 【发布时间】:2019-05-30 22:54:37 【问题描述】:我正在开发一个使用 FeathersJS SocketIO 客户端连接到 FeathersJS 服务器的 Electron 应用程序。它使用 FeathersJS 文档中提供的代码正常工作,但我希望能够连接/断开客户端与服务器的连接,基本上是连接到另一台服务器(具有完全相同的服务)。例如:我有 2 个 FeathersJS 服务器,它们的服务完全相同,但存储的数据不同,我希望我的 Electron 应用能够连接到 1 号服务器,然后断开连接并连接到 2 号服务器。
有什么办法吗?
【问题讨论】:
【参考方案1】:最直接的方法可能是初始化两个 Feathers 应用程序,您可以在 Electron 应用程序中相应地交换它们。一个稍微更老套的方法是替换应用程序 (app.io
) 和 initialized client services (service.connection
) 上的连接:
const replaceConnection = (app, socket) =>
app.io = socket;
Object.keys(app.services).forEach(name =>
app.service(name).connection = socket;
);
return app;
【讨论】:
你好达夫。我没有足够详细地解释我的问题。我不想同时连接到2台服务器,而是根据用户的输入更改服务器。所以我的 Electron 应用程序将启动,从配置文件中读取服务器地址并尝试连接到该服务器。如果用户通过应用程序 UI 更改服务器地址(以前未知),则 Electron 应用程序应关闭与第一台服务器的连接,然后连接到新服务器。由于“要求”的工作方式,我看不到在 javascript 中执行此操作的“好”方式。也许将 FeathersJS 客户端包装到类中? 为什么需要require
?我认为你所要做的就是一个 createApp(url)
函数,它返回一个用于 URL 的 Feathers 应用程序,并且能够在整个应用程序中交换返回的 app
对象。
你好 Daff,我已经尝试过你提出的一个简单函数的建议,它返回一个新的 feathersClient 并且它可以工作......我不太习惯 NodeJs 和 Javascript 的工作方式,所以我想我'我的代码过于复杂...谢谢您的帮助!以上是关于FeathersJS socketio客户端断开连接?的主要内容,如果未能解决你的问题,请参考以下文章
socket.io、netty-socketio、nginx 每分钟断开连接
如何在 android 上检查 socket.io 连接或断开连接?
微信小程序weapp.socketio不稳定,断开不触发断开事件问题