gatewayworker前端页面与socket服务器端进行数据通讯(二)

本文介绍了前端页面如何使用JSON数据与GatewayWorker服务器进行通讯,包括数据发送、接收及心跳检测。同时阐述了GatewayWorker服务端的职责,如数据处理和用户离线管理。最后提到了Thinkphp控制器在业务逻辑中的作用。
摘要由CSDN通过智能技术生成

接上。

前端页面:

前端页面在数据通讯的过程中,有3个作用:
第一,是整理出要发送的JSON数据,为JSON数据指定数据类型type,例子:

  //心跳包数据,onmessage初始化数据:
 var message_data = '{"type":"message_data_init","mbid":"'+mbid+'","bjid":"'+bjid+'","unit_price":"'+unit_price+'"}';
 //插入在线列表		
var list_insert = '{"type":"list_insert","mbid":"'+mbid+'","bjid":"'+bjid+'","nickname":"'+nickname+'"}';	
//实时更新在线列表
var list_update = '{"type":"list_update","mbid":"'+mbid+'","bjid":"'+bjid+'"}';		

然后用send()发给gatewayworker服务端,例如:

ws.send(list_insert);//客户端主动发送插入聊天室在线列表数据给gatewayworker
ws.send(list_update);//客户端主动发送更新聊天室在线列表数据给gatewayworker

第二,前端接收gatewayworker服务器端发送过来的各种类型的数据,服务端发送过来的数据,自动触发前端的onmessage函数,在前端onmessage函数内部,必须要用过switch…case的形式,对服务器端发送过来的数据进行分型处理,不同类型的数据,分配到不同的case中,进行不同的处理操作。

// 服务端主动推送消息时会触发这里的onmessage
ws.onmessage = function(e){
   
    // json数据转换成js对象
    var message = eval("("+e.data+")");
    switch(message.type){
   
        // Events.php中返回的init类型的消息,将client_id发给后台进行uid绑定
        case 'init'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值