我使用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);
})
而且,我希望在连接客户端时将一个参数传递给服务器。请让我知道我该怎么做。
谢谢,
答案 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>