第8章 C# .NET 开源可进行二次开发的即时通讯组件提供全部源码下载

提供所有的C# .NET相关源码并提供一年的技术服务,有需要的可以在淘宝上购买,淘宝上的购买地址为 http://jirigala.taobao.com/

 

即时通讯功能主要是为了实现管理系统的通知信息能即时发送给相应的用户账户,为了实现即时高效的通知功能。虽然与真正的商业化的即时通讯软件无法匹敌,但是往往内部个性化的管理系统,还是需要即时通知、即时沟通的需要。

 

虽然简易的及时通讯组件开发起来并不是很难,但是估计需要一个熟练的开发人员足足开发调试1周时间才能开发好,还要需要在接下来的时间里调试1个月左右才能真正投入生产环境里应用,接下来可能还会发现一些细节上的问题等,不断改进才能逐渐稳定下来,若有一个运行稳定的、编码质量良好的即时通讯组件,那很可能只要花费几天时间就可以应用到实际产生环境里了,省心省事一些。

 

消息组件需要几个核心的问题处理:

1:多线程编程、需要不影响客户的操作,能平滑提醒是否有新消息等。

2:与其他在线人员的沟通等,都需要在同一个窗口里提示。

3:同时可以跟多个人在线交流,而不只是只能跟一个人交流。

4:有个良好的表结构设计比较好,表结构不稳定,变来变去,整个组件就没稳定的时候了。  

 

本组件还可以做为C# .NET学习入门爱好者参考提高程序开发能力用、同时本组件跟整套的通用权限管理解决方案是有机的融为一体,整体功能组合在一起就很强大了。

8.1 发送消息

可以通过发送消息功能菜单,给系统的中的用户账户发送即时消息,若对应的用户在线状态或者登录了管理系统的页面,都应该能及时显示出来站内的即时消息。

 

 

8-1-1 发送信息菜单

 

 

8-1-2 发送信息窗口

 

进入发送信息窗口后,可以选择发送的对象,按选择按钮弹出选择用户账户的窗口,选择好目标用户账户。输入内容后点发送(S)按键后,即时信息就可以发送给相应的用户账户,支持同时发送给多个用户账户即批量发送信息功能。

 

 

8-1-3 选择用户账户窗口

 

8.2 即时通讯

 

8-2-1 即时通讯

 

可以通过双击系统图标,出现当前的系统中的内部组织架构图,可以直接选择组织机构中的用户账户、直接发送消息,设置用户的账户的权限等。

若有在线消息出来,可以直接弹出消息,也可以直接回复消息,用户的在线状态会时时更新,与QQMSN的在线状态很类似。

 

 

8-2-2 即时信息回复

上图为回复及时信息的功能效果图。

 

8.3 即时通讯二次开发接口说明  

ExpandedBlockStart.gif 代码
// ------------------------------------------------------------
//  All Rights Reserved , Copyright (C) 2010 , Jirisoft , Ltd. 
// ------------------------------------------------------------

using  System.Data;
using  System.ServiceModel;

namespace  DotNet.IService
{
    
using  DotNet.Utilities;
    
using  DotNet.Model;

    
///   <summary>
    
///  IMessageService
    
///  即时通讯组件接口
    
///  
    
///  修改纪录
    
///  
    
///         2010.10.17 版本:1.1 JiRiGaLa 整理接口函数注释。
    
///         2008.04.15 版本:1.0 JiRiGaLa 创建主键。
    
///         
    
///  版本:1.1
    
///
    
///   <author>
    
///          <name> JiRiGaLa </name>
    
///          <date> 2008.04.15 </date>
    
///   </author>  
    
///   </summary>
    [ServiceContract]
    
public   interface  IMessageService
    {
        
///   <summary>
        
///  获得内部部门(公司的组织机构)
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <returns> 数据表 </returns>
        [OperationContract]
        DataTable GetInnerOrganize(BaseUserInfo userInfo);

        
///   <summary>
        
///  发送即时消息
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <param name="receiverID"> 接收者主键 </param>
        
///   <param name="content"> 内容 </param>
        
///   <returns> 主键 </returns>
        [OperationContract]
        
string  Send(BaseUserInfo userInfo,  string  receiverId,  string  content);

        
///   <summary>
        
///  批量发送即时消息
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <param name="receiverIds"> 接收者主键组 </param>
        
///   <param name="organizeIds"> 组织机构主键组 </param>
        
///   <param name="roleIds"> 角色主键组 </param>
        
///   <param name="messageEntity"> 消息实体 </param>
        
///   <returns> 影响行数 </returns>
        [OperationContract]
        
int  BatchSend(BaseUserInfo userInfo,  string [] receiverIds,  string [] organizeIds,  string [] roleIds, BaseMessageEntity messageEntity);

        
///   <summary>
        
///  获取消息状态
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <param name="lastChekDate"> 最后检查时间 </param>
        
///   <returns> 消息状态数组 </returns>
        [OperationContract]
        
string [] MessageChek(BaseUserInfo userInfo,  string  lastChekTime);

        
///   <summary>
        
///  获取用户的新信息
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <returns> 数据表 </returns>
        [OperationContract]
        DataTable GetDTNew(BaseUserInfo userInfo);

        
///   <summary>
        
///  获取特定用户的新信息
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <param name="receiverID"> 当前交互的用户 </param>
        
///   <returns> 数据表 </returns>
        [OperationContract]
        DataTable ReadFromReceiver(BaseUserInfo userInfo, 
string  receiverId);

        
///   <summary>
        
///  阅读短信
        
///   </summary>
        
///   <param name="userInfo"> 用户 </param>
        
///   <param name="id"> 主键 </param>
        [OperationContract]
        
void  Read(BaseUserInfo userInfo,  string  id);
    }
}

 

可以与工作流、行政审批流程组件完美整合在一起,可参考地址如下:http://www.cnblogs.com/jirigala/archive/2010/10/08/1846195.html

多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】

 

 

相关数据库设计、源码等下载

    相关数据库设计免费下载:http://www.cnblogs.com/Files/jirigala/DotNet.DesignDocument.rar (PowerDesigner15格式)

    说明文档免费下载:http://www.cnblogs.com/Files/jirigala/handbookV3.0.pdf 

    相关视频免费下载:http://www.cnblogs.com/jirigala/archive/2010/09/16/1828482.html

 

 

一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级授权

疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限

 

 

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值