[Swift 开发] 一分钟会用Web Socket

2024-05-06 18:48

本文主要是介绍[Swift 开发] 一分钟会用Web Socket,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一般网络请求时,只能client发请求,server回答。server不能主动给client发消息,Web Socket就能解决这个问题。
 

1.导入框架

import Starscream

2.初始化对象

var socket: WebSocket?
var isConnected = false
let serverUrl = "ws://82.157.123.54:9010/ajaxchattest"var request = URLRequest(url: URL(string: serverUrl)!)
request.timeoutInterval = 5
socket = WebSocket(request: request)
socket?.delegate = self
socket?.connect()

3.接收消息和回调结果

    func didReceive(event: WebSocketEvent, client: WebSocket) {switch event {case let .connected(headers):isConnected = trueprint("websocket is connected: \(headers)")case let .disconnected(reason, code):isConnected = falseprint("websocket is disconnected: \(reason) with code: \(code)")case let .text(string):label.text = stringprint("Received text: \(string) \(CFAbsoluteTimeGetCurrent())")case let .binary(data):print("Received data: \(data.count)")case .ping:print("ping")breakcase .pong:print("pong \(CFAbsoluteTimeGetCurrent())")breakcase .viabilityChanged:breakcase .reconnectSuggested:breakcase .cancelled:isConnected = falseprint("断开链接")case .error:isConnected = falseprint("error")}}

4.测试

@IBAction func sendClicked(_ sender: Any) {socket?.write(data: "1234".data(using: .utf8)!, completion: {print("发送完成")})  }//发送完成
//Received text: 1234 
@IBAction func sendClicked(_ sender: Any) {socket?.write(string: "Hi Server! \(CFAbsoluteTimeGetCurrent())")socket?.write(ping: Data()) 
}//Received text: Hi Server!  
//pong 660204472.596506

这篇关于[Swift 开发] 一分钟会用Web Socket的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965079

相关文章

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

JavaWeb 中的 Filter组件详解

《JavaWeb中的Filter组件详解》本文详细介绍了JavaWeb中的Filter组件,包括其基本概念、工作原理、核心接口和类、配置方式以及常见应用示例,Filter可以实现请求预处理、响应后... 目录JavaWeb 中的 Filter 详解1. Filter 基本概念1.1 什么是 Filter1.

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Java通过ServerSocket与Socket实现通信过程

《Java通过ServerSocket与Socket实现通信过程》本文介绍了Java中的ServerSocket和Socket类,详细讲解了它们的构造方法和使用场景,并通过一个简单的通信示例展示了如何... 目录1 ServerSocket2 Socket3 服务器端4 客户端5 运行结果6 设置超时总结1

浅析Python中如何处理Socket超时

《浅析Python中如何处理Socket超时》在网络编程中,Socket是实现网络通信的基础,本文将深入探讨Python中如何处理Socket超时,并提供完整的代码示例和最佳实践,希望对大家有所帮助... 目录开篇引言核心要点逐一深入讲解每个要点1. 设置Socket超时2. 处理超时异常3. 使用sele

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二