簡體   English   中英

Socket.io瀏覽器客戶端未收到來自socket.io客戶端的發射事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM