iOS 中有 Socket.io 的事件
Events with Socket.io in iOS
我目前正在为 swift 使用 Socket.io 客户端,我已经能够与服务器建立连接,但由于某种原因,我无法接收事件。我已经尝试 运行 它进行调试,它从 iOS 客户端接收事件,但它没有执行 addUser 函数。我遗漏了一些明显的东西,但我不知道它是什么。
main.js
var app = require('http').createServer()
var io = require('socket.io')(app);
app.listen(6979)
io.on('connection', function(socket){
console.log('a user connected');
io.emit('hi there:');
});
io.on('addUser', function(username){
console.log('ran addUser');
io.emit(username);
console.log(username);
});
Swift
import UIKit
import Socket_IO_Client_Swift
class ViewController: UIViewController {
var name:String?
let socket = SocketIOClient(socketURL: "http://xxx.xxx.xxx.xxx:6979", options: [.Log(true), .ForcePolling(true)])
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func connect(sender: AnyObject) {
socket.connect()
}
@IBAction func sendMessage(sender: AnyObject) {
}
@IBAction func sendUsername(sender: AnyObject) {
let username = "yay"
socket.emit("addUser", username)
}
}
首先(可能)应该是
let socket = SocketIOClient(socketURL: "/", options: [.Log(true), .ForcePolling(true)])
那么服务器端应该是这样的
io.on('connection', function(socket){
console.log('a user connected');
socket.on('addUser', function(username){
console.log('ran addUser');
io.emit(username); // do you really need to do it?
console.log(username);
});
});
至少这应该能让您在服务器端接收 addUser
事件。
我目前正在为 swift 使用 Socket.io 客户端,我已经能够与服务器建立连接,但由于某种原因,我无法接收事件。我已经尝试 运行 它进行调试,它从 iOS 客户端接收事件,但它没有执行 addUser 函数。我遗漏了一些明显的东西,但我不知道它是什么。
main.js
var app = require('http').createServer()
var io = require('socket.io')(app);
app.listen(6979)
io.on('connection', function(socket){
console.log('a user connected');
io.emit('hi there:');
});
io.on('addUser', function(username){
console.log('ran addUser');
io.emit(username);
console.log(username);
});
Swift
import UIKit
import Socket_IO_Client_Swift
class ViewController: UIViewController {
var name:String?
let socket = SocketIOClient(socketURL: "http://xxx.xxx.xxx.xxx:6979", options: [.Log(true), .ForcePolling(true)])
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func connect(sender: AnyObject) {
socket.connect()
}
@IBAction func sendMessage(sender: AnyObject) {
}
@IBAction func sendUsername(sender: AnyObject) {
let username = "yay"
socket.emit("addUser", username)
}
}
首先(可能)应该是
let socket = SocketIOClient(socketURL: "/", options: [.Log(true), .ForcePolling(true)])
那么服务器端应该是这样的
io.on('connection', function(socket){
console.log('a user connected');
socket.on('addUser', function(username){
console.log('ran addUser');
io.emit(username); // do you really need to do it?
console.log(username);
});
});
至少这应该能让您在服务器端接收 addUser
事件。