连接到node.js时如何传递可选参数

时间:2015-03-04 05:50:14

标签: node.js express

我使用express Eureca.io连接到node.js.

        var express = require('express')
      , app = express(app)
      , server = require('http').createServer(app);


    // serve static files from the current directory
    app.use(express.static(__dirname));

     //// 
    //get EurecaServer class
    var EurecaServer = require('eureca.io').EurecaServer;

   eurecaServer.attach(server);

//detect client connection
eurecaServer.onConnect(function (conn) {    
    console.log('New Client id=%s ', conn.id, conn.remoteAddress);
})

而且,我希望在连接客户端时将一个参数传递给服务器。请让我知道我该怎么做。

谢谢,

1 个答案:

答案 0 :(得分:0)

如果你想要的东西是从客户端传递到服务器,你不能在onConnect函数内完成。

您需要的是定义服务器端功能并从客户端调用它。你的服务器实现也是错误的。

假设您的服务器端函数名为init()并将您要发送到服务器的参数,您的服务器代码变为

var express = require('express')
   , app = express(app)
   , server = require('http').createServer(app);
// serve static files from the current directory
app.use(express.static(__dirname));


var Eureca = require('eureca.io');
var eurecaServer = new Eureca.Server();

eurecaServer.exports.init = function(param) {
     //do what you want with param

     //if you want to get the client connection id you can use the code bellow
     var connID = this.socket.id;
}

eurecaServer.attach(server);
//detect client connection
eurecaServer.onConnect(function (conn) {    
   console.log('New Client id=%s ', conn.id, conn.remoteAddress);
})

然后在客户端你做

<head>
  <script src="/eureca.js"></script>
</head>
<body>
<script>

    var eurecaClient = new Eureca.Client();

        eurecaClient.ready(function (serverProxy) {
               serverProxy.init('hello'); //<==== here you call the server side init, and you pass 'hello' as parameter
        });

</script>
</body>
相关问题