相关疑难解决方法(0)

如何在Angular 2中的webpack中加载signalr.js

我总是收到一条消息说:

$ .hubConnection不是一个函数

错误:找不到jQuery.请确保在SignalR客户端JavaScript文件之前引用jQuery.安慰"$"和"jquery"是不确定的.

我需要做什么,让信号器使用webpack工作?

signalr webpack angular

8
推荐指数
2
解决办法
6641
查看次数

将SignalR集线器放在React / Redux应用程序中的哪里?

我正在设计一个使用Redux作为状态存储的React网站,该网站主要是为了向用户显示项目的当前填充,并使用实时更新通过SignalR更新项目填充。

我要这样做的方法是让SignalR发送项目更新消息,以在连接到服务器集线器时初始化初始填充,并随着时间的流逝通过相同的消息类型进行更新。我将有一个函数,该函数接受SignalR消息并将其转换为Redux动作并调度到Redux商店,然后该商店将使用该动作来更新状态,然后更新UI。

所以这个想法是

1)连接到SignalR服务器中心,并为ItemUpdate消息设置客户端处理程序功能

2)当服务器从客户端收到Connect()时,它将为填充中的所有当前项目发送ItemUpdate消息

3)客户端从SignalR接收这些消息,转换为动作并调度到Redux存储

4)Redux根据新商品信息更新商店,UI会显示它

5)服务器意识到一个项目已被添加或更新,并向客户端发送新的ItemUpdate消息以进行更新

6)重复

但是我不确定应该将集线器保持在什么位置,因为这似乎与React / Redux设计背道而驰。有人可以建议最好的方法吗?

我的主要应用

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import App from './App';
import './index.css';
import registerServiceWorker from './registerServiceWorker';
import 'rxjs';
import store from './store/index';

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root') as HTMLElement
);

registerServiceWorker();
Run Code Online (Sandbox Code Playgroud)

我的商店创建文件

import { createStore, applyMiddleware } from 'redux';
import rootReducer from '../reducers/index';
import signalRMiddleware from '../signalr/middleware';

const store = createStore(rootReducer, applyMiddleware(signalRMiddleware));
export …
Run Code Online (Sandbox Code Playgroud)

javascript signalr reactjs redux

5
推荐指数
2
解决办法
4926
查看次数

标签 统计

signalr ×2

angular ×1

javascript ×1

reactjs ×1

redux ×1

webpack ×1