ios - 如何使用 socket.io 快速发送 ping?
问题描述
我正在尝试在客户端和服务器之间使用 socket.io-client-swift( https://github.com/socketio/socket.io-client-swift )。即使我不确定连接是否成功建立,我也无法发送 ping。我正在将节点 js 用于服务器。
客户端代码
import UIKit
import SocketIO
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let manager = SocketManager(socketURL: URL(string: "ws://localhost:3000")!, config: [.log(true), .compress])
let socket = manager.defaultSocket
socket.on(clientEvent: .connect) { (data, ack) in
print("connected")
socket.emit("welcome_socket", "Hi server I am iOS")
}
socket.on(clientEvent: .disconnect) { (data, ack) in
print("connected")
socket.emit("disconnect_socket", "Bye I am iOS")
}
socket.connect()
}
}
服务器端代码
var express = require("express");
var app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server)
var connections = []
io.sockets.on('connection', function(socket){
connections.push(socket)
console.log("connect: %s sockets are connected", connections.length)
// disconnect
socket.on('disconnect', function(data){
connections.splice(connections.indexOf(socket), 1)
console.log("disconnect: %s sockets are connected", connections.length)
})
// listen from client
socket.on('welcome_socket', (data)=>{
console.log("data recieved from client, %s", data)
// respond back to the cient for the same event ()
io.emit('welcome_socket', "Hey client!")
})
})
server.listen(3000, ()=> {
console.log("server is running on 3000")
})
解决方案
推荐阅读
- c# - Azure 函数 - Blob 存储到 SFTP
- python - 表单从模型接收旧数据
- c# - 从具有自动化 ID 的列表中获取元素
- iphone - iOS 13 在后台没有收到 VoIP 推送通知
- amazon-web-services - 通过 AWS Cli 连接 AWS EKS
- python - 用“元素编号”替换数组中的元素(Python)
- angular - 在 android 上运行时,如何通过量角器中的(缺少)ID 访问 HTML 元素?
- javascript - Vue - 如果加载响应时显示一个 div
- c++ - 如何打印字符串而不是数字
- active-directory - Active Directory 直通身份验证