当前位置: 首页 > news >正文

云南政务网站建设ios软件开发工程师

云南政务网站建设,ios软件开发工程师,辽宁建设工程信息网官网入口官方,上海企业云本篇文章主要介绍了HTML5-WebSocket实现聊天室示例#xff0c;具有一定的参考价值#xff0c;感兴趣的小伙伴们可以参考一下。在传统的网页实现聊天室的方法是通过每隔一段时间请求服务器获取相关聊天信息来实现#xff0c;然而html5带来的websocket功能改变这了这种方式具有一定的参考价值感兴趣的小伙伴们可以参考一下。在传统的网页实现聊天室的方法是通过每隔一段时间请求服务器获取相关聊天信息来实现然而html5带来的websocket功能改变这了这种方式由于websocket在连接服务器后允许保持连接来进行数据交互因此服务器可以主动地向客户端发送相应的数据对于html5的处理只需要在连接创建完成后在websocket的receive事件中处理接收的数据即可.下面通过实现一个聊天室来体验一下服务器可以主动地向客户端发的功能功能一个简单的聊天室主要有以下几个功能)注册注册要处理几个事情分别是注册完成后获取当前服务器所有用户列表服务把当前注册成功的用户发送给其他在线的用户)发信息服务器把当前接收的消息发送给在线的其他用户)退出服务器把断开的用户通知其他用户聊天室完成的功能预览如下:C#服务端代码服务端的代码只需要针对几功能定义几个方法即可分别是注册获取其他用户和发送信息具体代码如下:/// /// Copyright © henryfan 2012///Email: henryfanmsn.com///HomePage: http://www.gxlcms.com////CreateTime: 2012/12/7 21:45:25/// class Handler{public long Register(string name){TcpChannel channel MethodContext.Current.Channel;Console.WriteLine({0} register name:{1}, channel.EndPoint, name);channel.Name name;JsonMessage msg new JsonMessage();User user new User();user.Name name;user.ID channel.ClientID;user.IP channel.EndPoint.ToString();channel.Tag user;msg.type register;msg.data user;foreach (TcpChannel item in channel.Server.GetOnlines()){if (item ! channel)item.Send(msg);}return channel.ClientID;}public IList List(){TcpChannel channel MethodContext.Current.Channel;IList result new List();foreach (TcpChannel item in channel.Server.GetOnlines()){if (item ! channel)result.Add((User)item.Tag);}return result;}public void Say(string Content){TcpChannel channel MethodContext.Current.Channel;JsonMessage msg new JsonMessage();SayText st new SayText();st.Name channel.Name;st.ID channel.ClientID;st.Date DateTime.Now;st.Content Content;st.IP channel.EndPoint.ToString();msg.type say;msg.data st;foreach (TcpChannel item in channel.Server.GetOnlines()){item.Send(msg);}}}只需要以上简单的代码就完成了聊天室服务端的功能对于用户退出可以通过连接释放事件来做处理具体代码protected override void OnDisposed(object sender, ChannelDisposedEventArgs e){base.OnDisposed(sender, e);Console.WriteLine({0} disposed, e.Channel.EndPoint);JsonMessage msg new JsonMessage();User user new User();user.Name e.Channel.Name;user.ID e.Channel.ClientID;user.IP e.Channel.EndPoint.ToString();msg.type unregister;msg.data (User)e.Channel.Tag;foreach (TcpChannel item in this.Server.GetOnlines()){if (item ! e.Channel)item.Send(msg);}}这样聊天定的服务端代码就已经完成了JavaScript代码对于html5代码首先要做的一件事就是连接到服务器相关javascript代码如下:function connect() {channel new TcpChannel();channel.Connected function (evt) {callRegister.parameters.name $(#nikename).val();channel.Send(callRegister, function (result) {if (result.status null || result.status undefined) {$(#dlgConnect).dialog(close);registerid result.data;list();}});};channel.Disposed function (evt) {$(#dlgConnect).dialog(open);};channel.Error function (evt) {alert(evt);};channel.Receive function (result) {if (result.type register) {var item getUser(result.data);$(item).appendTo($(#lstOnlines));}else if (result.type unregister) {$(#user_ result.data.ID).remove();}else if (result.type say) {addSayItem(result.data);}else {}}channel.Connect($(#host).val());}通过Receive回调池数来处理不同消息的情况如果是接收到其他用户的注册信息则把用户信息添加到列表中如果收到的其他用户的退出信息则在用户列表种移走直接收到消息添加到消息显示框中即可有jquery的帮助以上事件都变得非常简单用户注册调用过程:var callRegister { url: Handler.Register, parameters: { name: } };function register() {$(#frmRegister).form(submit, {onSubmit: function () {var isValid $(this).form(validate);if (isValid) {connect();}return false;}});}获取在线用户列表过程:发送消息过程:总结经过代码封装后websocket的处理变得非常简单如果你有兴趣完全可以在此代码上扩展出一个更多功能的聊到室如聊天室分组发送信息图片共享等等
http://www.pierceye.com/news/65347/

相关文章:

  • 江苏城乡建设厅网站室内装修设计师学什么专业
  • 辽宁建设工程信息网官网新网站入口衡水做wap网站多少钱
  • 医药行业网站建设如何做游戏推广
  • 洛阳网站建设的公司哪家好免费网站服务器安全
  • 网站建设可以修改吗建设部网站诚信平台
  • 上海百度seo网站优化设迹官网
  • 福安建设网站网站制作后续维护
  • 四川网站建设seo优化微信平台如何开发
  • asp.net官方网站wordpress 设置显示中文
  • 如何才能建设出一个优秀网站wordpress 游戏 模板下载地址
  • 网站链接推广工具asp网站管理系统源码
  • 一个人做商城网站网站优化做网站优化
  • 天津做网站找谁备案资料网站查询
  • 中国好公司网站建设天津网站优化哪家快
  • 做设计不进设计公司网站免费设计logo的软件有哪些
  • 网站免费下载安装蛋糕网站建设规划书
  • 长春在线制作网站制作排行榜的软件
  • 网站手机端生成黄石专业网站建设推广
  • sql与网站开发设计制作建筑模型综合实践教案
  • 怎么将网站关键词排名首页宁波手机网站开发公司
  • 江宁做网站价格网站管理员后台
  • 企业h5网站建设行业门户网站如何做
  • 摄影网站建设做部门内部使用的网站 用什么开发
  • 怎么查询网站是否被收录网站开发设计的完成情况
  • 做cp和网站运营响应式地方网站
  • 只知道网站后台怎么做301p2p网站开发费用
  • 小伙做钓鱼网站 背警方带走网站如何做延迟加载
  • 专业网站优化外包河北邯郸最新消息
  • 传媒建设网站抖音代运营怎么跟客户沟通并成交
  • 湛江网站建设方案优化个人主页网页设计素材