websocket基礎使用學習

websocket基礎使用學習

  • 一、websocket是什么?
  • 二、使用步驟
    • 1.websocket服務的安裝與啟動
      • 安裝服務
      • 連接與發消息
  • 總結

一、websocket是什么?

以前,很多網站為了實現推送技術,所用的技術都是Ajax 輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發出HTTP請求,然后由服務器返回最新的數據給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多的帶寬等資源

WebSocket 使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。在 WebSocket API 中,瀏覽器和服務器只需要完成一次握手,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。即實現客服實時消息回復平臺主動通知之類的功能。

二、使用步驟

1.websocket服務的安裝與啟動

安裝服務

這里用全新的項目與文件來做demo。

新建一個空文件夾,在文件夾中運行cmd,進行npm初始化命令:npm init -y

安裝服務依賴包:npm install nodejs-websocket --save

編輯服務js文件:server.js

    const ws = require('nodejs-websocket');const POST = 8080;const server = ws.createServer(connect => {connect.on("text", data => {console.log("received: "+data);connect.sendText(data);});connect.on("close", (code, reason) => {console.log("connection closed!");});connect.on('error', ()=>{console.log("connection error!");});});server.listen(POST, ()=>{console.log("websocket server start success!");});

在文件夾的cmd中啟動服務:node server.js,會看到下面結果:
在這里插入圖片描述
服務就啟動好了。

連接與發消息

編寫html文件,來進行連接與發消息,例如:test.html

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>測試WebSocket</title><script type="text/javascript">// 打開一個 web socketvar ws = new WebSocket("ws://127.0.0.1:8080");ws.onopen = function(){// Web Socket 已連接上,使用 send() 方法發送數據ws.send("發送數據");};ws.onmessage = function (evt) { var received_msg = evt.data;};ws.onclose = function(){ // 關閉 websocket};var i =1;function sendmsg(){ws.send("發送數據"+i++);}</script></head><body><div id="sse"><a href="javascript:sendmsg()">發消息</a></div></body>
</html>

測試結果:
在這里插入圖片描述

總結

這里就是基礎使用了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37904.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37904.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37904.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ios18開發者預覽,Beta 2升級新增鏡像等功能

近日&#xff0c;蘋果發布了 iOS 18 開發者預覽版 Beta 2 升級&#xff0c;為 iPhone 用戶帶來了多項新功能。據了解&#xff0c;這些新功能包括 iPhone 鏡像和 SharePlay 屏幕共享&#xff0c;以及其他新增功能。 據了解&#xff0c;iPhone鏡像可以讓Mac用戶將iPhone屏幕鏡像…

OLMo:真正完全開源的大模型

最近&#xff0c;又有一家機構AI2&#xff08;Allen Institute for AI&#xff09;開源了一個LLM&#xff1a;OLMo&#xff0c;它的英文全稱就叫Open Language Model。相比之前開源的大模型&#xff0c;OLMo的獨特之處是完全開源&#xff0c;除了訓練的模型&#xff0c;OLMo還開…

ElementUI的基本搭建

目錄 1&#xff0c;首先在控制終端中輸入下面代碼&#xff1a;npm i element-ui -S 安裝element UI 2&#xff0c;構架登錄頁面&#xff0c;login.vue?編輯 3&#xff0c;在官網獲取對應所需的代碼直接復制粘貼到對應位置 4&#xff0c;在繼續完善&#xff0c;從官網添加…

商業智能(BI)實戰項目

商業智能&#xff08;BI&#xff09;實戰項目 期待您的關注 ?大數據學習筆記 1.實現的功能 2.數據庫操作步驟 創建數據庫&#xff1a;create database card;創建表&#xff1a;create table card_apply ( cid bigint primary key auto_increment ,apply_uid bigint ,apply_ent…

商城自動化測試實戰 —— 登錄+滑塊驗證

hello大家好&#xff0c;我是你們的小編&#xff01; 本商城測試項目采取PO模型和數據分離式架構&#xff0c;采用pytestseleniumjenkins結合的方式進行腳本編寫與運行&#xff0c;項目架構如下&#xff1a; 1、創建項目名稱&#xff1a;code_shopping&#xff0c;創建所需項目…

openEuler安裝docker

在openEuler上安裝Docker&#xff0c;可以通過以下步驟進行&#xff1a; 1、更新軟件包索引&#xff1a; sudo yum makecache 2、安裝Docker&#xff1a; sudo yum install docker -y 3、啟動Docker服務&#xff1a; sudo systemctl start docker 4、設置Docker開機自啟&am…

010、GPT-5:AI新紀元的曙光與挑戰

目錄 GPT-5&#xff1a;AI新紀元的曙光與挑戰 1.革命性的個人助理 2.教育領域的變革 3.醫療健康的新篇章 4.科研創新的加速器 5.創意產業的新靈感 6.商業與經濟的智能化 7.社會治理的新工具 8.環境保護與可持續發展 9.倫理與社會影響 學術視角&#xff1a;AI發展的前…

惠海H6392 2.6v升5V 3.7V升9V 4.2V升12V 升壓恒壓芯片 小家電IC

惠海H6392升壓恒壓芯片是一款小家電、移動設備以及其他需要升壓恒壓電源的電子設備設計的DC-DC轉換器。這款芯片以其獨特的產品特性和廣泛的應用場景&#xff0c;為電子產品設計者提供了高效、穩定的電源解決方案。 產品描述&#xff1a; H6392采用了簡單的電流模式升壓技術&a…

使用Collections.shuffle打亂集合順序

使用Collections.shuffle打亂集合順序 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何使用Java中的Collections.shuffle方法來打亂集合的順序…

單例模式實現方式

單例模式 單例模式&#xff08;Singleton Pattern&#xff09;的主要目的是確保一個類只有一個實例&#xff0c;并提供一個全局訪問點來訪問該實例。 在 Java 中&#xff0c;實現單例模式的方式有幾種常見的方式 懶漢式 public class Singleton{private static final Singlet…

華為od-C卷200分題目4 -電腦病毒感染

華為od-C卷200分題目4 -電腦病毒感染 一個局域網內有很多臺電腦&#xff0c;分別標注為0 - N-1的數字。相連接的電腦距離不一樣&#xff0c;所以感染時間不一樣&#xff0c;感染時間用t表示。其中網絡內一個電腦被病毒感染&#xff0c;其感染網絡內所有的電腦需要最少需要多長…

二叉樹的題目

目錄 1、將遍歷的結果放在list中 2、判斷兩棵樹是否相同 3、翻轉二叉樹 4、判斷平衡二叉樹 5、判斷二叉樹是否對稱 6、判斷是否為完全二叉樹 先創建一個二叉樹 public class BinaryTree {static class TreeNode {public char val;public TreeNode left;public TreeNode …

NextJs 系列文章

NextJs 系列文章 NextJs 初級篇 - 安裝 | 路由 | 中間件NextJs 渲染篇 - 什么是CSR、SSR、SSG、ISR 和服務端/客戶端組件NextJs 數據篇 - 數據獲取 | 緩存 | Server Actions

使用Java實現通用樹形結構轉換工具類:深入解析TreeUtil和TreeNode接口

文章目錄 一、TreeNode接口設計二、TreeUtil工具類設計三、示例&#xff1a;實現TreeNode接口的節點類四、示例&#xff1a;使用TreeUtil構建樹形結構五、總結 &#x1f389;歡迎來到Java學習路線專欄~探索Java中的靜態變量與實例變量 ☆* o(≧▽≦)o *☆嗨~我是IT陳寒&#x1…

基于vue腳手架創建的圖書商城

功能簡介 此項目包括首頁, 搜索列表, 商品詳情, 購物車, 訂單, 支付, 用戶登陸/注冊等多個子模塊&#xff0c;使用 Vue 全家 桶ES6WebpackAxios 等技術&#xff0c;采用模塊化、組件化、工程化的模式開發。 功能模塊圖 2.1首頁 2.2.搜索列表 2.3.商品詳情 2.4.購物車 2.5.支…

條件測試,if語句,case語句

測試命令 格式1&#xff1a;test 條件表達式 格式2&#xff1a;[條件表達式] test命令和 [ ] 相同&#xff0c;建議使用[ ] #方框中要空格 #用test可能會不小心定義變量文件測試 常見的測試操作符含義-d檢查文件是否存在且為目錄-f檢查文件是否存在且為常規文件-L測試…

解決json日期格式問題

解決json日期格式問題 1.json默認輸出時間格式 RequestMapping("/json3") public String json3() throws JsonProcessingException {ObjectMapper mapper new ObjectMapper();//創建時間一個對象&#xff0c;java.util.DateDate date new Date();//將我們的對象解…

Knife4j:快速入門

1. 概述 Knife4j是一個用于生成和展示API文檔的工具&#xff0c;同時它還提供了在線調試的功能&#xff0c;下圖是其工作界面。 * Knife4j有多個版本&#xff0c;最新版的Knife4j基于開源項目springdoc-openapi&#xff0c;這個開源項目的核心功能就是根據SpringBoot項目中的代…

uniapp uniCloud云開發

uniCloud概述 uniCloud 是 DCloud 聯合阿里云、騰訊云、支付寶云&#xff0c;為開發者提供的基于 serverless 模式和 js 編程的云開發平臺。 uniCloud 的 web控制臺地址&#xff1a;https://unicloud.dcloud.net.cn 文檔&#xff1a;https://doc.dcloud.net.cn/uniCloud/ un…

大模型應用-多模態和大模型是如何相互成就的

前言 如果單純的將大模型用來聊天&#xff0c;那就是low了。 而多模態賦予了大模型更多的現實價值&#xff0c;大模型則助力多模態變得更強大。 多模態 我們所處的是一個物理世界&#xff0c;不同事物之間模態多種多樣&#xff0c;即便是簡單的文本&#xff0c;按照語言&am…