我在Node.js
,React
,Express
和Socket.IO
中有一个单页面应用程序,其数据流划分如下:
C#服务器应用程序通过feed.js
提供Socket.IO
数据。 feed.js
反过来也负责转换数据(在更新数据结构以便正确呈现到app.js之后)并将其提供给app.js
以在浏览器中显示。
// Handle real-time incoming messages from c# clients.
socket.on('data', function (data) {
broadcast(data, socket);
});
function broadcast(message, sender) {
//process.stdout.write("Full message " + message.toString() + "\n");
//...To app.js
onChangeHandler(stock.symbol, 'stock', stock);
在这种情况下,在实时加载下,浏览器有时会对数据没有响应,而是对影响显示的类似视图的命令。换句话说,我仍然可以看到数据更新,但鼠标点击浏览器不会以交互方式处理。
作为桌面开发者的正常反应"是通过创建额外的计算线程使计算(模型)与视图分离 - 视图已经在自己的线程上运行。但是,我已经读过Node.js(和支持的演员)是故意的单线程。看起来Socket.IO
似乎没有那个限制。
想知道Node.js等中的习惯用法是编写在数据和GUI交互中对Web浏览器做出响应的实时应用程序。一个例子或一个链接会有所帮助。