我有一个SignalR集线器,它是从Windows服务本地运行的。我的React + Redux应用程序也只在本地运行并连接到集线器,而我目前仅在使用它来接收来自服务器的消息。
SignalR.js:
import { createStore, compose } from 'redux';
import { Middleware, SignalR } from 'app-shared';
import rootReducer from '../Reducers/rootReducer';
const savedState = sessionStorage.store ? JSON.parse(sessionStorage.store) : {};
const store = createStore(rootReducer, savedState, compose(Middleware.customMiddleware));
SignalR.signalRStart(store, () => {});
store.subscribe(() => {
sessionStorage.store = JSON.stringify(store.getState());
});
export default store;
store.js:
public static void main(String[]args){
File f = new File("junk.txt");
File dir = f.getAbsoluteFile().getParentFile();
System.out.println("can write dir " + dir.getName()+": "+dir.canWrite());
System.out.println("can write " + f.getName()+": "+f.canWrite());
try (Writer w = new FileWriter(f)) {
w.append("world\n");
System.out.println("write succeeded");
} catch (IOException ex) {
System.out.println("write failed");
}
}
它可以工作一段时间,但最终会断开连接并保持断开状态。我认为集线器不是问题,因为其他客户端可以轻松保持连接/自动重新连接。我假设我的实现中存在一些缺陷,但是我看不到任何明显错误的地方。我添加了一些警报以监视断开连接的时间。它似乎没有任何错误。