博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebSocket 开发模拟客户端与有游戏服务器通信
阅读量:6421 次
发布时间:2019-06-23

本文共 1950 字,大约阅读时间需要 6 分钟。

WebSocket 客户端测试功能

  websocket是有标准的通信协议,在h2engine服务器引擎中继承了websocket通信协议,使用websocket通信协议的好处是很多语言或框架都内置了websocket的支持,工具也非常多,可以非常方便的测试。比如在逻辑开发过程中,有时候协议定好了,但是由于客户端还没有及时完成相应功能,那么如果有个模拟的客户端就会非常的方便,这个模拟的客户端只要能够收发协议就好。websocket浏览器天然支持,所以用浏览器websocket实现模拟客户端非常的方便,使用的人直接省掉了按照客户端的麻烦,直接放到一个webserver上,所有人都能用。

WebSocket 与服务器通信实现

  协议设计,websocket与h2engine服务器引擎通信,协议头的格式是cmd:协议号(整型)\n数据,这里参考了http头的协议设计,以\n区别协议头和协议体,协议头可以有多个参数,逗号分隔,这里只用了cmd,保留了其他协议参数的能力。用字符串的协议头对js这种脚本语言更友好,更容易兼容其他语言。

var ws = undefined;var gHost = '';function Log(Text, MessageType) {
if (MessageType == "OK") Text = "" + Text + ""; else if (MessageType == "ERROR") Text = "" + Text + ""; else if (MessageType == "SEND") Text = "" + Text + ""; document.getElementById("LogContainer").innerHTML = document.getElementById("LogContainer").innerHTML + Text + "
"; var LogContainer = document.getElementById("LogContainer"); LogContainer.scrollTop = LogContainer.scrollHeight;};function btnConnect(){
if (ws){
Log("连接已经建立!!。", "ERROR"); return; } gHost = document.getElementById("ip").value + ":" + document.getElementById("port").value; Log("begin connect:"+gHost) gHost += "/chat"; if ("WebSocket" in window) {
ws = new WebSocket("ws://" + gHost); } else if("MozWebSocket" in window) {
ws = new MozWebSocket("ws://" + gHost); } ws.onopen = WSonOpen; ws.onmessage = WSonMessage; ws.onclose = WSonClose; ws.onerror = WSonError;}function btnClose(){
if (ws) ws.close();}function WSonOpen() {
Log("连接已经建立。", "OK");};function btnSend(){
var cmdReq = $('#cmdSelect').val(); var dataReq = $('#dataReq').val(); var reqMsg = 'cmd:' + cmdReq + '\n'+dataReq; ws.send(reqMsg);}

WebSocket 基于浏览器实现的模拟客户端截图

  1. ip port 设置服务器ip端口
  2. 协议号用于填写协议号,整型
  3. 协议数据这里只是作为延时只输入字符串,这个正式的应该是根据协议号显示不同的协议结构,然后根据结构字段分别填写。

img_f196ec8213f1a44a55fc5297cdeb67a9.png

相关连接

  • 文档
  • 源码

转载地址:http://gymra.baihongyu.com/

你可能感兴趣的文章
如何写gdb命令脚本
查看>>
Android ListView展示不同的布局
查看>>
iOS宏(自己使用,持续更新)
查看>>
手把手玩转win8开发系列课程(3)
查看>>
NGINX引入线程池 性能提升9倍
查看>>
《淘宝技术这十年》读书笔记 (四). 分布式时代和中间件
查看>>
linux下mongodb定时备份指定的集合
查看>>
oVirt JBAS server start failed, ajp proxy cann't server correct. ovirt-engine URL cann't open
查看>>
CDP WebConsole上线公告
查看>>
ubuntu下安装摄像头应用程序xawtv
查看>>
PostgreSQL 如何比较两个表的定义是否一致
查看>>
Ambari安装Hadoop集群
查看>>
WCF学习之旅—基于ServiceDebug的异常处理(十七)
查看>>
CLREX
查看>>
再也不用担心this指向的问题了
查看>>
PHP那些事儿
查看>>
使用putty远程连接linux
查看>>
【comparator, comparable】小总结
查看>>
Node 版本管理
查看>>
34、重分布配置实验之分发列表distribute-list
查看>>