Socket.io Javascript 发射到 Swift
Socket.io Javascript emit to Swift
我有这个 Javascript socket.io emit 函数,我需要使用文档中的说明在 Swift、SwiftUI 中编写它:
订阅和获取归档进程事件:
- 订阅'galleryArchive'套接字事件
- 通过套接字发出:
socket.emit("subscribeOnGalleryArchiveInfo", { archiveEventName, galleryId }, data => {});
脚本:
socketClient.emit(
'subscribeOnGalleryArchiveInfo',
{ archiveEventName: eventName, galleryId },
(event: GalleryArchiveEvent) => {
const { data } = event;
setArchivingData(data);
}
);
我所做的只是在 Swift 中初始化 Socket viewModel,但似乎无法在没有一堆错误的情况下重新创建此 emit 函数。
我的代码:
class GalleryArchiveSocket: ObservableObject {
@Published var archiveEventName: String
@Published var galleryId: String
var manager: SocketManager?
var socket: SocketIOClient?
init(archiveEventName: String, galleryId: String) {
self.archiveEventName = archiveEventName
self.galleryId = galleryId
guard let apiUrl = AppConfig.rootURL
else {
return
}
manager = SocketManager(
socketURL: apiUrl,
config: [
.extraHeaders(
[
HTTPHeader.authorization.key: HTTPHeader.authorization.value.headerValue
]
),
.log(true),
.compress
]
)
guard let socket = manager?.defaultSocket
else {
return
}
socket.on(clientEvent: .connect) {_, _ in
print("I'm connected")
// Emit function with param ? and receive data ?
}
socket.connect()
}
}
我通过查看大量 Socket.io swift 示例找到了解决方案,直到我看到有人传递了如下数据:["archiveEventName": self.archiveEventName, "galleryId": self.galleryId]
和@workingdog帮助初始语法。
socket.on(clientEvent: .connect) {_, _ in
socket.emit("subscribeOnGalleryArchiveInfo", ["archiveEventName": self.archiveEventName, "galleryId": self.galleryId])
socket.on("GalleryArchiveEvent") { data, ack in
print(data)
}
}
我有这个 Javascript socket.io emit 函数,我需要使用文档中的说明在 Swift、SwiftUI 中编写它:
订阅和获取归档进程事件:
- 订阅'galleryArchive'套接字事件
- 通过套接字发出: socket.emit("subscribeOnGalleryArchiveInfo", { archiveEventName, galleryId }, data => {});
脚本:
socketClient.emit(
'subscribeOnGalleryArchiveInfo',
{ archiveEventName: eventName, galleryId },
(event: GalleryArchiveEvent) => {
const { data } = event;
setArchivingData(data);
}
);
我所做的只是在 Swift 中初始化 Socket viewModel,但似乎无法在没有一堆错误的情况下重新创建此 emit 函数。
我的代码:
class GalleryArchiveSocket: ObservableObject {
@Published var archiveEventName: String
@Published var galleryId: String
var manager: SocketManager?
var socket: SocketIOClient?
init(archiveEventName: String, galleryId: String) {
self.archiveEventName = archiveEventName
self.galleryId = galleryId
guard let apiUrl = AppConfig.rootURL
else {
return
}
manager = SocketManager(
socketURL: apiUrl,
config: [
.extraHeaders(
[
HTTPHeader.authorization.key: HTTPHeader.authorization.value.headerValue
]
),
.log(true),
.compress
]
)
guard let socket = manager?.defaultSocket
else {
return
}
socket.on(clientEvent: .connect) {_, _ in
print("I'm connected")
// Emit function with param ? and receive data ?
}
socket.connect()
}
}
我通过查看大量 Socket.io swift 示例找到了解决方案,直到我看到有人传递了如下数据:["archiveEventName": self.archiveEventName, "galleryId": self.galleryId]
和@workingdog帮助初始语法。
socket.on(clientEvent: .connect) {_, _ in
socket.emit("subscribeOnGalleryArchiveInfo", ["archiveEventName": self.archiveEventName, "galleryId": self.galleryId])
socket.on("GalleryArchiveEvent") { data, ack in
print(data)
}
}