[英]Socket.io browser client not receiving emit events from socket.io client
帶SOCKET.IO SWIFT的iOS客戶端:
class SignupViewController: UIViewController{
let socket = SocketIOClient(socketURL: NSURL(string: "http://localhost:3000")!)
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func createUser(sender: AnyObject) {
LoginUser(email: emailInput.text!, password: passwordInput.text!){ results in
self.addHandlers()
self.socket.connect()
}
}
private func addHandlers(){
socket.on("connect") {data, ack in
self.socket.emit("new-device-connect", "ascascasc")
}
}
服務器:
// start the server if `$ node server.js`
if (require.main === module)
app.io = require('socket.io')(app.start());
//app.start();
app.io.on('connection', function(socket){
console.log("client connected");
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
瀏覽器客戶端
var socket = io('http://localhost:3000');
socket.on('connect', function(){
socket.on("new-device-connect", function(d){
console.log("a new client is connected");
});
socket.on("disconnect", function(){
});
});
當我以IOS客戶端名稱new-device-connect
發出事件時,我需要在瀏覽器客戶端上調用該事件以顯示已連接的新IOS設備,但瀏覽器客戶端未收到new-device-connect
事件。
我會在您的服務器上放置一個socket.on(“ new-device-connect”),但我還沒有進行移動開發,但是我認為您是在將該信息傳遞給服務器而不是瀏覽器客戶端。 然后,Socket.io應該將您的調用正確發送到瀏覽器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.