限制消息发送次数

这种方式在学习笔记(二)-  高并发应用中介绍过,在客户端和服务器端使用定时器来减少消息发送的次数

减少消息数据的大小

服务器端,可以使用JsonIgnore, 来忽略不需要序列化的属性,并使用JsonProperty给需要序列化的属性起一个简短的名字

using Newtonsoft.Json;

using System;

public class ShapeModel

{

      [JsonProperty("l")]

    public double Left { get; set; }

      [JsonProperty("t")]

    public double Top { get; set; }

    // We don't want the client to get the "LastUpdatedBy" property

      [JsonIgnore]

    public string LastUpdatedBy { get; set; }

}

但是这样随之而来的问题就是JavaScript中读取这些属性的可读性变差了,前台开发人员很可能不知道l字段是什么,t字段是什么。

所以Javascript中需要加入一些代码将这些可读性差的属性,转换成可读性好的属性

function reMap(smallObject, contract) {

    var largeObject = {};

    for (var smallProperty in contract) {

        largeObject[contract[smallProperty]] = smallObject[smallProperty];

    }

    return largeObject;

}

var shapeModelContract = {

    l: "left",

    t: "top"

};

myHub.client.setShape = function (shapeModelSmall) {

    var shapeModel = reMap(shapeModelSmall, shapeModelContract);

    // shapeModelSmall has "l" and "t" properties  but after remapping

    // shapeModel now has "left" and "top" properties

};

SignalR学习笔记(四) 性能优化的更多相关文章

  1. Android学习笔记之性能优化SparseArray

    PS:终于考完试了.来一发.微机原理充满了危机.不过好在数据库89分,还是非常欣慰的. 学习内容: 1.Android中SparseArray的使用..   昨天研究完横向二级菜单,发现其中使用了Sp ...

  2. IOS学习笔记45--UITableView性能优化

    说实话,面试的时候已经被问到几次这个问题,然后就搜索了一下,看到了这篇优化文章,感觉不错,转来日后作为一种UITableView优化的方法. 使用不透明视图.      不透明的视图可以极大地提高渲染 ...

  3. SignalR学习笔记(二)高并发应用

    虽然SignalR借助Websocket提供了很强大的实时通讯能力,但是在有些实时通讯非常频繁的场景之下,如果使用不当,还是会导致服务器,甚至客户端浏览器崩溃. 以下是一个实时拖拽方块项目的优化过程 ...

  4. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化 第一章:向量代数 1.向量计算的时候,使用XMV ...

  5. Android App性能优化笔记之一:性能优化是什么及为什么?

    By Long Luo   周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住 ...

  6. 零拷贝详解 Java NIO学习笔记四(零拷贝详解)

    转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...

  7. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  8. openresty 学习笔记四:连接mysql和进行相关操作

    openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...

  9. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  10. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

随机推荐

  1. IMCASH:2019年区块链不会风平浪静,至少还有10件事值得期待

    当我们在说2019年是值得期待的一年时,我们还是得做到有根有据.那么,2019年在区块链行业都会发生哪些引导行业风向.影响整个行业的事件呢? 今天,白话区块链带着大家顺着时间线梳理一下. 01 第一季 ...

  2. 小程序API

    基础: wx.canIUse(string)    boolean wx.canIUse(string schema)   判断小程序的API,回调,参数,组件等是否在当前版本可用. 参数说明 ${A ...

  3. python之socketserver实现并发

    python之socketserver实现并发 服务端 import socketserver #socketserver模块是用来实现并发 # 我们自己的类里一定要继承socketserver.Ba ...

  4. python vs vscode问题汇总

    最近在学工程目录章节的时候遭遇了个把 vscode目录管理 造成的问题, 当然第一大原因是: 初学者使用vscode的时候没有将环境设置好..... 闹了好几天的脾气, 这两天才整理好..... 这事 ...

  5. 利用kibana插件对Elasticsearch进行bool查询

    #bool查询#老版本的filtered查询已经被bool代替#用 bool包括 must should must_not filter来完成 ,格式如下:#bool:{#  "filter ...

  6. NOIP2013 D1T3 货车运输 zz耻辱记

    目录 先来证明下lemma: 图上2点间最小边权最大的路径一定在MST上 感性理解下: 每次kruskal algo都连接最大的不成环边 此时有2个未联通的联通块被连起来. 那么考虑u, v两点的联通 ...

  7. HTTP协议头部与Keep-Alive模式详解(转)

    转自:http://a280606790.iteye.com/blog/1095085 http1.1 中怎么打开持久连接,怎么关闭,怎么传输数据(确定本次数据是否传输完毕) 1.什么是Keep-Al ...

  8. cookie设置域名问题,cookie跨域

    今天研究一天发现cookie无法设置除当前域名或者其父域名之外的其他domain. 这个是浏览器出于对cookie的保护造成的,也就是cookie无法跨域设置. 对于子域名也有如下规则,当前域名只能设 ...

  9. pytroch nn.Module源码解析(1)

    今天在写一个分类网络时,要使用nn.Sequential中的一个模块,因为nn.Sequential中模块都没有名字,我一时竟无从下笔.于是决定写这篇博客梳理pytorch的nn.Module类,看完 ...

  10. web 基础设置

    1.设置代码格式为UTF-8 2.运行jsp文档 3.设置自己喜欢的浏览器运行,设置为默认的 找到自己的浏览器位置 点ok Name是名字的意思 为这个浏览器娶一个名字 是什么浏览器就写什么名字 4. ...