html5数据交互技术,html5-websocket基于远程方法调用的数据交互实现分享

一般在传统网页中注册用户信息都是通过post或ajax提交到页面处理,到了HTML5后我们有另一种方法就是通过

下面通过一个简单的用户注册来体现

HTML:

功能很简单就是连接到websocket服务后进行注册信息提交,当然为了更灵活点我们在监测到连接关闭的时候重新打开连接窗体,具体的JS代码如下:

代码如下:

function connect() {

channel = new TcpChannel();

channel.Connected = function (evt) {

$(‘#dlgConnect’).dialog(‘close’);

};

channel.Disposed = function (evt) {

$(‘#dlgConnect’).dialog(‘open’);

};

channel.Error = function (evt) {

alert(evt);

};

channel.Connect($(‘#txtHost’).val());

}

代码是不是很简洁,主要原因是在WebSocket的基础上封装了一个TcpChannel,详细代码可以下载了解.连接成功后就进入了注册窗体

通过填写一些注册信息后,点击注册把信息通过WebSocket提交给服务端,相关提交的JS代码如下:

代码如下:

var invokeregister = { url: ‘Handler.OnRegister’, parameters: { UserName: ”, Email: ”, PassWord: ”} };

function register() {

$(‘#frmRegister’).form(‘submit’, {

onSubmit: function () {

var isValid = $(this).form(‘validate’);

if (isValid) {

invokeregister.parameters = $(‘#frmRegister’).serializeObject();

channel.Send(invokeregister, function (result) {

alert(result.data);

});

}

return false;

}

});

}

当验证数据成功后通过TcpChannel发送一个方法调用描述对象即可,url是指定调用的类方法,而paramters即是方法的参数,参数也可以是复杂的结构类型.第二个参数是一个回调处理.

C#

服务由于基于Beetle的扩展处理,所以代码是非常简单的.针对以上注册的逻辑方法代码如下:

代码如下:

public class Handler

{

public string OnRegister(string UserName, string Email, string PassWord)

{

Co

方法只需要定义相关参数即可,Beetle的消息扩展控制器会自动分析js提交的json数据进行分析并绑定到相关方法中执行.对于控制器的详细代码也可以通过下载代得到.逻辑编写完成我们只需要简单地打开相关websocket服务即可.

代码如下:

class Program:WebSocketJsonServer

{

static void Main(string[] args)

{

Beetle.Controllers.Controller.Register(new Handler());

TcpUtils.Setup(“beetle”);

Program server = new Program();

server.Open(8088);

Console.WriteLine(“websocket start@8088”);

System.Threading.Thread.Sleep(-1);

}

protected override void OnError(object sender, ChannelErrorEventArgs e)

{

base.OnError(sender, e);

Console.WriteLine(e.Exception.Message);

}

protected override void OnConnected(object sender, ChannelEventArgs e)

{

base.OnConnected(sender, e);

Console.WriteLine(“{0} connected”, e.Channel.EndPoint);

}

protected override void OnDisposed(object sender, ChannelDisposedEventArgs e)

{

base.OnDisposed(sender, e);

Console.WriteLine(“{0} disposed”, e.Channel.EndPoint);

}

}

这样一个基于html5的websocket对象消息交互和处理就完成,只需很少量的代码就实现了js和服务进行数据交互的处理.要实现这方便交互功能以下几个封装省不了.websocket协议分析,对象json处理和消息控制分发;如果想了解相关细可以下载源码查看.

WebSocket.Server.rar (641.79 kb)

—-想了解更多的linux相关异常处理怎么解决关注

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/html5/71964.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值