有空研究一下 superwebsocket (底层是 supersocket) 用来实现 web聊天什么的
参考:http://superwebsocket.codeplex.com/
一个老外写的 asp.net 下socket的多钟方案推荐 :http://www.codeproject.com/Articles/733297/WebSocket-libraries-comparison
中文翻译 http://www.admin10000.com/document/3986.html
重点节选
SuperWebsocket
http://superwebsocket.codeplex.com/
最后但并不是最不重要的是SuperWebsocket。我对这个有一点怀疑(如果我没记错的话,这仅仅是一个我通过NuGet网站发现的包,但又不是一个可用的包)。它似乎有一点复杂,但实际上它是非常简单的。有文献支持的例子帮助你一步步的从最简单的WebSocket服务器,到有命令请求,JSON,多服务器实例,.config文件配置或者更多的复杂Websocket服务器。
这个库也许没有包含所有其他库有的那些很酷的特性,但是这没关系,因为它是高度可配置的,你可以很容易的让它实现你想要的。它可以作为控制台应用程序或者windows服务运行于ASP.NET中。文献上则建议以系统服务的形式来运行服务器。从我的经验来看,建议不要在一个web应用程序里面运行它因为这种解决方案很慢(非常糟糕的表现,比控制台应用程序大约慢50倍)。从另一方面,独立的服务器应用程序,需要运行.exe结尾的文件,这个文件并不是库的一部分,但是是SuperSocket项目的一部分(SuperWebSocket就是基于这个项目的)。这使得你需要一点技巧在调试会话中开启服务器,或者完全启用调试。当你作为应用程序运行服务器的时候,虽然这不是解决方案的一部分,也需要确保服务器采用来自其他项目的最新版的组件。
作为回报,你得到了关于灵活的WebSocket的众所周知的解决方案。
它仍然是开源的所以你可以根据需要改变它。
从另一方面,你可能把这个服务器缺乏JavaScript客户端看做是它的缺点(但是它有C#客户端)。这个服务器也有第三方的依赖关系。
在使用这个库工作了几个月之后我没发现什么主要的问题。
缺点和优点:
无备用通信
依赖
优雅的特性和高度可配置性
很棒的例子
例子的都有推荐设置的文档
可以作为windows服务和ASP.NET模块和控制台应用程序运行
好的性能表现
总结
对于复杂的解决方案/项目我建议用SuperWebSocket,因为它是一个稳定而且高度可配置的库。对于简单和需要快速开发的项目我会选择Fleck,但是如果有办法使用最新的windows服务器来作为测试和生产机器的话,我会放弃使用这两个而选择SignalR。
官方网站: http://www.supersocket.net
有空研究一下 superwebsocket (底层是 supersocket) 用来实现 web聊天什么的的更多相关文章
- 深入研究Sphinx的底层原理和高级使用
深入研究Sphinx的底层原理和高级使用
- 写了几年代码了,苦苦追寻,应该沉淀下来了,好好研究。net底层框架,以及较好的分层框架
几年码农了.像沉淀下来.写一下自己的分层框架,尤其是逻辑层和orm层.数据訪问层.一切靠自己.网上一大堆框架,可是感觉各有优缺点.于是萌生了自己写适合自己的底层訪问框架?亲们,你们有适合自己的框架么?
- 有空研究一下OwnerDraw和三种Windows风格CS_OWNDC和CS_PARENTDC和CS_CLASSDC
就在StdCtrls.pas, ExtCtrls.pas和Buttons.pas三个类里研究就够了,这是初步的搜索结果: ---------- 在打开的文档中查找 ---------- "G ...
- NetLink通信原理研究、Netlink底层源码分析、以及基于Netlink_Connector套接字监控系统进程行为技术研究
1. Netlink简介 0x1:基本概念 Netlink是一个灵活,高效的”内核-用户态“.”内核-内核“.”用户态-用户态“通信机制.通过将复杂的消息拷贝和消息通知机制封装在统一的socket a ...
- 我的.gitignore下配置。存在这里一下。日后有空研究研究!
.DS_Storenode_modules/dist/yxxt/npm-debug.log*yarn-debug.log*yarn-error.log* # Editor directories an ...
- 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面
经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...
- 如何穿越到android底层
对于android开发,实际上大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到问题是不至于束手无策.因此有必要了解底层的工作机制. ...
- 从底层角度看ASP.NET-A low-level Look at the ASP.NET...
从更低的角度 这篇文章在一个底层的角度来关注一个web请求怎样到达asp.net框架,从web服务器,通过ISAPI.看看这些后面发生了什么,让我们停止对asp.net的黑箱猜想.ASP.NET是一个 ...
- C#网络编程技术SuperSocket实战项目演练
一.SuperSocket课程介绍 1.1.本期<C#网络编程技术SuperSocket实战项目演练>课程阿笨给大家带来三个基于SuperSocket通讯组件的实战项目演示实例: ● 基于 ...
随机推荐
- 【FastDFS】FastDFS在CentOS的搭建
准备安装软件 [root@blog third_package]# cp fastdfs-nginx-module_v1.16.tar.gz FastDFS_v5.08.tar.gz libfastc ...
- 【Java Concurrency】sleep()、wait()、notify()、notifyAll()的用法与区别
>关于本文 本文介绍sleep().wait().notify().notifyAll()方法,主要要理解: sleep()和wait()的区别. wait()与notify().notifyA ...
- 让浏览器兼容H5元素和媒体查询的代码
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.j ...
- 使用httpclient下载 页面、图片
代码 import java.io.IOException; import java.io.UnsupportedEncodingException; import org.apache.http.c ...
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xa3 in position 1: ordinal not in range(128)
使用codecs模块 codecs模块能在处理字节流的时候提供很大帮助.你可以用定义的编码来打开文件并且你从文件里读取的内容会被自动转化为Unicode对象. 试试这个: >>> i ...
- eclipse中git插件使用
1,首先看下文件的几个工作区:Unstaged Changes(本地工作空间),Staged Changes(Add to Index操作之后代码存放的地方),Local Repository(本地仓 ...
- WPF通过EventTrigger改变其他控件的值
场景:点击TextBox后弹出Poppup 原理:使用EventTrigger后触发StoryBoard,通过StoryBoard改变其他控件的值. 参考代码: <Grid> <Gr ...
- C语言 · 选最大数
算法提高 选最大数 时间限制:1.0s 内存限制:512.0MB 输入3个整数a.b.c,(数的范围是[1,10000])输出其中最大的数.(用指针实现) 样例输入 2 5 1 样例 ...
- (转)azkaban job参数说明
azkaban的工作流中的参数可以分为如下几个类型:azkaban UI 页面输入参数, 环境变量参数, job作业文件中定义的参数,工作流的用户定义的属性文件,上游作业传递给下游的参数,工作流运行时 ...
- java File linux windows 下 绝对路径 相对路径问题
前言 当前项目目录 windows 为 E:\project\testpro\ linux 为 /project/testpro/ Windows环境下获取绝对路径情况 使用 a/b/c 为路径, ...