您的位置:

ios连接websocketjs(ios连接wifi不弹出登录页面)

ios连接websocketjs(ios连接wifi不弹出登录页面)

更新:

本文目录一览:

IOS系统苹果手机 WebSocket无法连接的问题

Vue前端使用了WebSocket和服务器进行交互,在PC和ANDROID上都正常使用,但是在苹果手机上连接失败,也没什么报错,经过抓包发现了问题。

这是正常浏览器访问的协议:

下面是IOS手机访问时抓到的协议

发现了这2个地方有区别,然后百度了一下发现存在 The extension [x-webkit-deflate-frame] is not supported 的问题

按照上面的办法,在服务器端拦截器加上:

if(request.getHeaders().containsKey("Sec-WebSocket-Extensions")){

request.getHeaders().set("Sec-WebSocket-Extensions", "permessage-deflate");

}

就可解决!

Js WebSocket

html

head

script type="text/javascript"

var ws = new WebSocket("ws://localhost:7272");

//申请一个WebSocket对象,参数是服务端地址,同http协议使用http://开头一样,WebSocket协议的url使用ws://开头,另外安全的WebSocket协议使用wss://开头

ws.onopen = function(){

//当WebSocket创建成功时,触发onopen事件

  console.log("open");

ws.send("hello"); //将消息发送到服务端

}

ws.onmessage = function(e){

//当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据

    var data = JSON.parse(e.data);

  switch(data['type']){

            // 服务端ping客户端

            case 'ping':

                ws.send('{"type":"pong"}');

console.log("ping: "+e.data);

                break;;

            // 登录 更新用户列表

            case 'login':

    console.log("login: "+e.data);

                //{"type":"login","client_id":xxx,"client_name":"xxx","client_list":"[...]","time":"xxx"}

                /*say(data['client_id'], data['client_name'],  data['client_name']+' 加入了聊天室', data['time']);

                if(data['client_list'])

                {

                    client_list = data['client_list'];

                }

                else

                {

                    client_list[data['client_id']] = data['client_name'];

                }

                flush_client_list();

                console.log(data['client_name']+"登录成功");*/

                break;

            // 发言

            case 'say':

      console.log("say: "+e.data);

                //{"type":"say","from_client_id":xxx,"to_client_id":"all/client_id","content":"xxx","time":"xxx"}

                //say(data['from_client_id'], data['from_client_name'], data['content'], data['time']);

                break;

            // 用户退出 更新用户列表

            case 'logout':

    console.log("logout: "+e.data);

                //{"type":"logout","client_id":xxx,"time":"xxx"}

              // say(data['from_client_id'], data['from_client_name'], data['from_client_name']+' 退出了', data['time']);

                //delete client_list[data['from_client_id']];

              //  flush_client_list();

        }

}

ws.onclose = function(e){

//当客户端收到服务端发送的关闭连接请求时,触发onclose事件

console.log("close");

}

ws.onerror = function(e){

//如果出现连接、处理、接收、发送数据失败的时候触发onerror事件

console.log(error);

}

function login()

{

  console.log("login:111");

    var login_data = '{"type":"login","client_name":"zyx","room_id":"1"}';

    console.log("websocket握手成功,发送登录数据:"+login_data);

    ws.send(login_data);

}

function send()

{

  console.log("send:111");

    ws.send('{"type":"say","to_client_id":"all","to_client_name":"222","content":"txt"}');

}

function send2()

{

  console.log("send:111");

    ws.send('{"type":"say","to_client_id":"7f00000108fc00000011","to_client_name":"222","content":"txt"}');

}

/script

/head

body

div onclick="login()" style="width:100px;height:80px;"

  登录

/div

div onclick="send()"  style="width:100px;height:80px;"

  发送

/div

div onclick="send2()"  style="width:100px;height:80px;"

  发送2

/div

/body

/html

iOS使用Charles代理抓包WebSocket连接

代理软件:Shadowrocket(白嫖苹果账号: )

1、手机上安装Shadowrocket

2、掌握了Charles对HTTPS抓包的设置

1、Charles勾选如下设置

2、打开Shadowrocket添加Socks5类型的节点,地址填写代理ip,端口填写上一步中SOCKS Proxy端口,然后选择全局代理模式进行连接

3、可以看到Charles中已经抓到wss的连接了

印象笔记 :

备注:测试过程中发现有很多主流app还是抓不到,这个有待研究,但是上图印象笔记、贝壳找房是可以抓到的,大家可自行验证其他app

怎样在iOS中使用websocket协议

做一个打印指定页的功能,输入起始页终止页,然后从后台拿到对应的数据,跳到另一个页面(此页面承载符合条件的内容)此页面中提供onload事件,直接执行打印哪个功能;

ios连接websocketjs(ios连接wifi不弹出登

本文目录一览: 1、IOS系统苹果手机 WebSocket无法连接的问题 2、Js WebSocket 3、iOS使用Charles代理抓包WebSocket连接 4、怎样在iOS中使用websock

2023-12-08
Linux连接WiFi详解

2023-05-20
ios开发mysql操作的库,ios连接mysql数据库

2022-11-18
ios内购php服务端开发,ios 内购开发

2022-11-19
iosjs报错(ios解析json崩溃)

本文目录一览: 1、怎么解决js在ios中播放音频.play方法报错的问题 2、把游戏程序生成ios时,js中调用c#代码报错是为什么 3、苹果手机出现不受支持的计划: Javascript Java

2023-12-08
Fiddler手机抓包iOS完全指南

2023-05-24
连接mysql数据库笔记1(如何连接数据库mysql)

2022-11-10
ios和php交互问题,ios php开发环境

2023-01-05
ios支持jsp么,ios打开jsp

本文目录一览: 1、苹果手机如何查看jsp文件? 2、请问phonegap怎么打包webapp成为ios应用、webapp前端都是jsp页面、后台是java写的。phonegap支持吗? 3、苹果电脑

2023-12-08
ios雀魂majsoul,ios雀魂网页版

本文目录一览: 1、雀魂役满动画怎么触发 2、ipad怎么下载雀魂麻将 3、ios怎么下载雀魂? 4、《雀魂》为什么不在ios上架? 5、雀魂majsoul苹果怎么玩 6、雀魂苹果平板怎么支付 雀魂役

2023-12-08
iOS状态栏详细解析

2023-05-19
ios下进入mysql(ios页面)

2022-11-09
java连接sql,java连接sql数据库登录界面

2022-12-01
ios禁止侧滑js,ios如何禁止页面滑动

2022-11-23
ios运行jsapp(ios运行内存怎么查看)

本文目录一览: 1、原生APP中js怎样与Android和ios进行交互 2、android(ios)设备通过js打开手机上存在的app.... 3、如何启用javascript在Safari和iOS

2023-12-08
php接收ios(php接收邮件)

2022-11-14
iOS网络权限详解

2023-05-16
Android连接WiFi详细讲解

2023-05-20
jsp连接网页和java代码(jsp和java怎么连接)

本文目录一览: 1、在JSP网页中怎样加入Java代码?? 2、java jsp页面怎么写java类?怎么调用java代码? 3、我怎么把我编辑的java程序和jsp衔接起来,并且把他们显示出来,就是

2023-12-08
ios调用jsapi,ios调用微信支付

本文目录一览: 1、如何在React中调用微信的jsSDK 2、微信支付时jsapi缺少参数appid怎么办 3、php微信支付,调用jsapi的时候,IOS成功支付,安卓提示fail_invalid

2023-12-08