Socket.io浏览器客户端没有从socket.io客户端

时间:2016-03-03 05:20:40

标签: javascript ios node.js swift socket.io

IOS客户端与SOCKET.IO SWIFT:

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")
    }
}

SERVER:

// 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设备,但浏览器客户端未收到{{1事件。

1 个答案:

答案 0 :(得分:0)

我会在你的服务器上放一个socket.on(“new-device-connect”),我还没有进行移动开发,但我认为你将这些信息传递给你的服务器而不是浏览器客户端。然后,Socket.io应该正确地向浏览器发出调用。

相关问题