WEB开发网
开发学院图形图像Flash 使用SilverLight构建插件式应用程序(八) —聊天插... 阅读

使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现

 2008-10-23 11:43:33 来源:WEB开发网   
核心提示: 用户加入聊天室之后,加入到用户队列中,使用SilverLight构建插件式应用程序(八) —聊天插件Duplex WCF的实现(3),同时从用户聊天的数据库读入其他用户给当前用户的留言并删除留言,6:用户说话,就把聊天信息保存到数据库,否则,这是平常一直要使用的方法,接受用户的聊天信息:/

用户加入聊天室之后,加入到用户队列中,同时从用户聊天的数据库读入其他用户给当前用户的留言并删除留言。

6:用户说话,这是平常一直要使用的方法,接受用户的聊天信息:

 /// <summary>
  /// 聊天
  /// </summary>
  /// <param name="receivedMessage"></param>
  [OperationContract(IsOneWay = true)]
  public void Say(Message receivedMessage)
  {
    IWSChatClient chatclient = OperationContext.Current.GetCallbackChannel<IWSChatClient>();
    ChatMessage text = receivedMessage.GetBody<ChatMessage>();
    if (!m_NameList.Contains(text.To))
    {
      //保存数据到数据库
      ChatBLL bll = new ChatBLL();
      bll.Add(text);
      return;
    }   
    if (!chatClients.ContainsValue(chatclient))
    {
      return;
    }
    SendMessageToClient(text);
  }

代码很少 ,如果用户没有登陆,就把聊天信息保存到数据库,否则,直接发送到用户的客户端去。

7:用户退出聊天室:

  }
  /// <summary>
  /// 退出聊天室
  /// </summary>
  /// <param name="receivedMessage"></param>
  [OperationContract(IsOneWay = true)]
  public void Exit(Message receivedMessage)
  {
    IWSChatClient client = OperationContext.Current.GetCallbackChannel<IWSChatClient>();
    ChatMessage cm = receivedMessage.GetBody<ChatMessage>();
    if (chatUsers.Contains(cm.From))
    {
      chatUsers.Remove(cm.From);
    }
    if (chatClients.ContainsKey(cm.From))
    {
      chatClients.Remove(cm.From);
    }
  }

上一页  1 2 3 4  下一页

Tags:使用 SilverLight 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接