webSocket 实现小游戏

简介: 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。

前言 一、为什么需要 WebSocket?


初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?


答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。可以看图


举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。


它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。


1af9c990729b473e03cbc0ce1cdd0af0.png


webSocket协议 通常是ws和wss


客户端API


1.webSocket为构造函数 使用的时候需要new操作符


new WebSocket


2. readyState 状态


  • CONNECTING:值为0,表示正在连接。
  • OPEN:值为1,表示连接成功,可以通信了。
  • CLOSING:值为2,表示连接正在关闭。
  • CLOSED:值为3,表示连接已经关闭,或者打开连接失败。


3.onopen


用于指定连接成功后的回调函数


4.onclose


用于指定连接关闭后的回调函数


5.onmessage


用于指定收到服务器数据后的回调函数


6.send


方法用于向服务器发送数据


1.nodejs 通过express-ws 连接和发送给前端数据


服务端API 介绍


框架主要是express 后端长连接用的是express-ws


getWss 返回当前的连接池


const express = require('express')
const app = express()
const ws = require('express-ws')
const wss = ws(app).getWss('/talk')
app.ws('/talk', (ws, req) => {
    //console.log('success',ws)
    ws.on('message', msg => {
        wss.clients.forEach(w=>{
            w.send(msg)
        })
    })
})
app.listen(9001, () => {
    console.log('http://localhost:9001/talk')
})


2.前端连接后台的webSocket 进行通信


   const type = prompt('请输入1位红方阵营,2位蓝色方')
        let ws = new WebSocket('ws://localhost:9001/talk')
        let wrpas = document.querySelectorAll('.wraps div');
        ws.onopen = () => {
            console.log('成功')
        }
        wrpas.forEach((item, index) => {
            item.onclick = function () {
                ws.send(JSON.stringify({
                    index,
                    type
                }))
            }
        })
        ws.onmessage = ({ data }) => {
            let options = JSON.parse(data)
            wrpas[options.index].style.background = options.type == 1 ? 'red' : 'blue';
        }
目录
相关文章
|
7月前
|
网络协议 UED 开发者
|
前端开发 Java 应用服务中间件
Java后端实现websocket与微信小程序端连接简单例子
Java后端实现websocket与微信小程序端连接简单例子http://www.bieryun.com/963.html 直接附代码 前端代码:
2938 0
|
Android开发 开发框架 Java
【WebSocket】手把手教会使用WebSocket
由于参加了黑客马拉松,团队需要这个技术,所以我下午就简单的实现了一下。找了好多demo,最大问题就是环境大家都没介绍清楚,我弄了很久很久的环境。 首先eclipse得是j2ee的,eclipse官网或者私信给我我发给你吧(如果你确实不会下) 另外一个就是tomcat,这个必须是7以上的版本在支持j2ee的websocket包。apache-tomcat-7.0.72-wi
4660 0
|
移动开发 前端开发 网络协议
WebSocket网页聊天室
WebSocket网页聊天室
200 0
|
9月前
|
资源调度 JavaScript 前端开发
❤Nodejs 第十五章(简单websocket聊天实现)
【4月更文挑战第15天】本文介绍了在Node.js中实现简单WebSocket聊天的过程。首先通过`yarn`创建项目并安装`ws`和`express`依赖。接着,编写`WebSocketServer.js`建立WebSocket服务器,处理客户端连接、消息收发及错误。然后,用`server.js`创建一个静态文件服务器,提供`index.html`。`index.html`包含客户端的WebSocket连接和消息处理。启动两个服务器后,可以在浏览器中打开`index.html`进行聊天。最后,讨论了在Node.js 20+Vite环境下使用WebSocket时可能遇到的问题
86 0
|
Web App开发 网络协议 应用服务中间件
微信小程序中如何使用WebSocket实现长连接(含完整源码)
微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架、组件以及 API,在这个平台上面的想象空间很大。腾讯云研究了一番之后,发现微信支持 WebSocket 还是很值得玩味的。这个特性意味着我们可以做一些实时同步或者协作的小程序。
5553 0
|
监控 小程序 安全
微信小程序使用GoEasy实现websocket实时通讯
手把手的教您用GoEasy在微信小程序里,最短的时间快速实现一个websocket即时通讯Demo。
|
9月前
使用uniapp实现websocket聊天功能
使用uniapp实现websocket聊天功能
|
JSON 前端开发 小程序
Websocket直播间聊天室教程 - GoEasy快速实现聊天室
近期线上直播非常的火爆,很多朋友问如何用GoEasy实现直播间聊天室,然后我们就推出了这一篇直播间教程,希望能够为有直播间聊天室开发需求的开发者提供参考思路。

热门文章

最新文章