当前位置: 首页 > 面试题库 >

如何在websockets / socket-io / nowjs中使用骨架.js

岳玉堂
2023-03-14
问题内容

我刚刚进入ebrian.js,发现进度有点慢。我的主要问题是研究如何使用socket-
io使客户端和服务器端模型保持同步(从技术上讲,我正在使用now.js,但应使用相同的主体)。

我认为最好的方法是重写sync方法,但 确实会 欢迎一些简单的建议。


问题答案:

只需进行覆盖,Backbone.sync以便它在socket.io下发送消息,并告诉服务器上的相关boundaryjs模型更改状态。

该解决方案有趣的部分是建立主控关系。您需要确保对于任何客户端,他们只能“更新”其具有“所有权”的服务器上的模型状态,以避免黑客和服务器端状态损坏。

因此,对于每个客户端,他们有一个集合M,其中该客户端是M中所有模型的主模型,并具有一个集合S,其中该客户端具有S中所有模型的从模型。

它只能在M中的模型服务器上强制更新,并且只有一个客户端在M中具有特定模型(或者您需要实现可靠的锁定/合并实现)。

每当服务器上的模型更新时,您只需将其推送到在S中具有该模型的任何客户端(如果该模型在多个客户端的M中,则将其推送到在M中具有该模型的任何客户端)。

一旦客户端POST / PUT / DELETE一些数据,通常需要由MVC控制器处理的控制/权限和所有权方面需要很多考虑。



 类似资料:
  • 本文向大家介绍如何在微信小程序中使用骨架屏的步骤,包括了如何在微信小程序中使用骨架屏的步骤的使用技巧和注意事项,需要的朋友参考一下 本文介绍了微信小程序中使用骨架屏,分享给大家,具体如下: 先上效果图 ​ 骨架屏主要起到占位作用,向用户说明该区域有内容,有一定的心理准备。 聊聊背景:刚上线一款小程序,随着上架的东西越来越多,微信小程序加载越来越慢,会出现一段时间的白屏(大概2-3s),这对用户体验

  • 使用一个bones数组来创建一个可以由SkinnedMesh使用的骨架。 代码示例 // Create a simple "arm" const bones = []; const shoulder = new THREE.Bone(); const elbow = new THREE.Bone(); const hand = new THREE.Bone(); shoulder.add( elb

  • A Socket.io Chat Example Using TypeScript This repository contains server & client side code using TypeScript language Blog Post Read the blog post with details about this project: Real Time Apps with

  • NowJS 是一个实现了 JavaScript 服务器端进行通讯的框架,基于 Node.js 开发。 示例代码: 服务器端: <script src="/nowjs/now.js"></script> var everyone = require("now").initialize(httpServer);everyone.now.getServerInfo = function(callback

  • 在前面的章节,我们说过,首屏速度对于用户留存率至关重要。 很多站点都会在完成基本功能后(或者同时)进行性能优化,常见的性能优化手段包括静态资源合并,压缩文件,使用 CDN,包括上一小节介绍的 App Shell 等,这些的确能够显著地缩短加载时间。但是我们想象一下,在首次打开时,主体内容渲染完成之前,页面基本上是空白的,这对于用户体验是非常不友好的。如果我们用能够快速渲染的静态图片/样式/色块进行

  • 介绍 用于在内容加载过程中展示一组占位图形。 引入 import { createApp } from 'vue'; import { Skeleton } from 'vant'; const app = createApp(); app.use(Skeleton); 代码演示 基础用法 通过 title 属性显示标题占位图,通过 row 属性配置占位段落行数。 <van-skeleton