17

私はnode.jsを初めて使用しますが、これを使用してsocketstream Webフレームワークについてある程度知っています。JavaScriptからサーバー側のnode.jsメソッドを簡単に呼び出すことができます。そのフレームワークを使用せずにこれを行う方法がわかりません。JavaScript から node.js メソッドを呼び出すにはどうすればよいですか?

以下のコードは、socketstream を使用してサーバー側のメソッドを呼び出しています。そこで、このフレームワークを使わずに同じサーバーサイドメソッドを呼び出したい。

ss.rpc('FileName.methodName',function(res){ 
    alert(res);         
});
4

2 に答える 2

18

Socket.IOを使用することをお勧めします

サーバー側コード

var io = require('socket.io').listen(80); // initiate socket.io server

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' }); // Send data to client

  // wait for the event raised by the client
  socket.on('my other event', function (data) {  
    console.log(data);
  });
});

およびクライアント側

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost'); // connec to server
  socket.on('news', function (data) { // listen to news event raised by the server
    console.log(data);
    socket.emit('my other event', { my: 'data' }); // raise an event on the server
  });
</script>

または、クライアントからの特定の要求でいくつかの関数を呼び出すルーター関数を使用できます

var server = connect()
    .use(function (req, res, next) {
      var query;
      var url_parts = url.parse(req.url, true);
      query = url_parts.query;

      if (req.method == 'GET') {
        switch (url_parts.pathname) {
            case '/somepath':
            // do something
            call_some_fn()
            res.end();
            break;
          }
        }
    })
    .listen(8080);

そしてAJAX、JQueryを使用してリクエストを発行します

$.ajax({
    type: 'get',
    url: '/somepath',
    success: function (data) {
        // use data
    }
})
于 2013-02-19T06:46:45.470 に答える