您的位置:

js发起websocket,js发起远程网络请求,并且获取返回结果

js发起websocket,js发起远程网络请求,并且获取返回结果

更新:

本文目录一览:

前台不用Socket.io.js如何发起webSocket请求连接?

var ws = new WebSocket(“ws://echo.websocket.org”);

ws.onopen = function(){ws.send(“Test!”); };

ws.onmessage = function(evt){console.log(evt.data);};

ws.onclose = function(evt){console.log(“WebSocketClosed!”);};

ws.onerror = function(evt){console.log(“WebSocketError!”);};

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

WebSocket的简单实现

WebSocket协议是基于TCP的一种新的网络协议。 浏览器通信通常是基于HTTP 协议,为什么还需要另一个协议?因为http只能由客户端发起,不能由服务端发起。

而WebSocket 浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket规范

WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,附加信息如图所示

连接过程(以js(客户端)和java(服务器端)为例)

js:ws.send( String msg) ps:入参可以是字符串或者json字符串java:onMessage(String message)message为客户端传来的信息

java:sendUser( String msg) js:ws.onmessage

4.断开连接 onclose ( CloseReason reason)

CloseReason.CloseCode ( WebSocket关闭连接的状态码,类似http的404)

js部分:

java部分(javax实现):

ps: session 用来唯一标识连接对象

使用注解@ServerEndpoint

参考文献

javax websocket:(服务端实现api文档)

js websocket:(客户端api文档)

rfc6455 (websocket协议规范): ** 产品介绍**

在html页面中,用js调取websocket,发送多条请求

发送,主要有以下几个步骤:

1.用ClientManager实例化一个对象,并与服务端建立连接;

2.连接成功后,client端程序会调用与之关联的ClientEndpoint类中的OnOpen方法,一般onOpen方法里面我们主要是用来发送正式的请求报文(可以使用session.getBasicRemote().sendText("start"));

3.发送完成后,服务端返回响应,这时client程序会调用ClientEndpoint类中的OnMessage方法,OnMessage方法一般是用来解析服务端响应的

4.连接关闭;

如何开启nodejs websocket服务器

建立一个WebSocket的连接用send方法发送消息。

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

ws.onopen = function (e) {

console.log('Connection to server opened');

}

function sendMessage() {

ws.send($('#message').val());

}

如何通过js脚本获取websocket对象

使用一个文本编辑器,把下面代码复制保存在一个 websocket.html 文件中,然后只要在浏览器中打开它,页面就会使用 websocket 自动连接,发送一个消息,显示接受到的服务器响应,然后关闭连接。

!DOCTYPE html  

meta charset="utf-8" /  

titleWebSocket Test/title  

script language="javascript"type="text/javascript"  

    var wsUri ="ws://echo.websocket.org/"; 

    var output;  

    

    function init() { 

        output = document.getElementById("output"); 

        testWebSocket(); 

    }  

 

    function testWebSocket() { 

        websocket = new WebSocket(wsUri); 

        websocket.onopen = function(evt) { 

            onOpen(evt) 

        }; 

        websocket.onclose = function(evt) { 

            onClose(evt) 

        }; 

        websocket.onmessage = function(evt) { 

            onMessage(evt) 

        }; 

        websocket.onerror = function(evt) { 

            onError(evt) 

        }; 

    }  

 

    function onOpen(evt) { 

        writeToScreen("CONNECTED"); 

        doSend("WebSocket rocks"); 

    }  

 

    function onClose(evt) { 

        writeToScreen("DISCONNECTED"); 

    }  

 

    function onMessage(evt) { 

        writeToScreen('span style="color: blue;"RESPONSE: '+ evt.data+'/span'); 

        websocket.close(); 

    }  

 

    function onError(evt) { 

        writeToScreen('span style="color: red;"ERROR:/span '+ evt.data); 

    }  

 

    function doSend(message) { 

        writeToScreen("SENT: " + message);  

        websocket.send(message); 

    }  

 

    function writeToScreen(message) { 

        var pre = document.createElement("p"); 

        pre.style.wordWrap = "break-word"; 

        pre.innerHTML = message; 

        output.appendChild(pre); 

    }  

 

    window.addEventListener("load", init, false);  

/script  

h2WebSocket Test/h2  

div id="output"/div  

/html

js发起websocket,js发起远程网络请求,并且获取返

本文目录一览: 1、前台不用Socket.io.js如何发起webSocket请求连接? 2、Js WebSocket 3、WebSocket的简单实现 4、在html页面中,用js调取websock

2023-12-08
php获取js返回值,ajax获取php返回值

2022-11-29
js如何获取服务器数据,js如何获取服务器返回的数据

本文目录一览: 1、如何用JS解析服务器中xml文件的内容 2、怎么在js里面获取数据库的数据 3、js提交表单后,怎么获取服务器的返回值 4、如何通过JS接口获取数据 5、js如何获取缓存 6、Ja

2023-12-08
JS获取IP地址详解

2023-05-16
webviewjs发请求(webview的网络请求)

本文目录一览: 1、WKWebView js方法的使用 2、webview 与js怎样实现数据交互 3、android中webview与js交互 4、UIWebView怎么拦截到网页里面JS发起的Aj

2023-12-08
JS Fetch: 一站式网络请求利器

2023-05-18
js代码原生请求,js原生get请求

2022-11-24
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
如果用js远程读取网页内容(如果用js远程读取网页内容怎么办

本文目录一览: 1、js如何在本地远程读取指定url的内容? 2、js读取远程网页源码 3、JAVASCRIPT如何获取远程页面内容 js如何在本地远程读取指定url的内容? 你的意思是,你的电脑上有

2023-12-08
websocket.js重连,js websocket重连

本文目录一览: 1、websocket重连不创建新对象 2、一文吃透 WebSocket 原理 3、Websocket断线重连怎么实现的 websocket重连不创建新对象 可以。我创建了一个新的We

2023-12-08
php调用js的ajax请求,js中ajax请求

本文目录一览: 1、jquery ajax php 调用方法! 2、thinkphp中怎么用ajax 3、php 怎么判断是否ajax请求 4、如何通过php的curl模拟ajax请求,获取其返回值

2023-12-08
重学java笔记,java笔记总结

2022-11-23
用js开发web应用(js网页开发)

本文目录一览: 1、为什么 Web 前端开发不抛弃 HTML 和 CSS,用纯 JavaScript 开发 2、让你的 Node.js Web 应用程序更快的 10 个技巧 3、直接用js jsp进行

2023-12-08
js获取任意网页源码(js读取网页源码)

本文目录一览: 1、JS 获得网页代码 2、JavaScript 如何读取某网页的源码? 3、js获取网页源代码 4、js读取远程网页源码 5、javascript如何获取当前网页的源码? JS 获得

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
java返回给js的值类型,java获取方法返回值类型

2022-12-02
js解压zip文件,js zip解压

2022-11-23
js地址栏代码(js获取地址栏信息)

本文目录一览: 1、怎么用JS获取获取浏览器地址栏参数 2、JS获取地址栏url参数 3、如何在地址栏中输入一段js代码,使当前页面动态载入一段js脚本文件! 4、js代码 获取浏览器地址栏的内容 怎

2023-12-08
JS获取网络时间

2023-05-16