2

只是一个简单的问题:

我正在YUI3为我的网站使用框架并想使用socket.io框架。

现在的挑战是socket.io与 YUI3 一起使用。截至目前,我socket.io在沙箱中使用逻辑YUI并且工作正常。

但是这种方法可以有任何退路吗?如果是,那么我应该如何对两者进行整数化?

这是代码片段:

<script type="text/javascript">

YUI().use('my-slide' , 'node', 'event','transition',  function (Y) {

    // connecting to nodejs server running on 7001 port for dynamic updates 
    var broadcast = io.connect('http://localhost:7001/getlatestbroadcast');

    broadcast.on('status',function(data){

        // some socket  logic here 
    }); 

    // Setting Listener
    broadcast.on('moreData',function(data){

        // some socket logic here 

    });
});

</script>
4

1 回答 1

2

您正在做的事情绝对有效,除非您与其他名为io. 使用 Socket.IO(或 YUI 中的任何其他外部模块)的一种更有效的方法是在Y对象上命名它:

YUI({
      modules: {
          'socket.io': {
              fullpath: '/socket.io/socket.io.js'
          }
      },

      onProgress: function (e) {
          if (e.data[0].name === 'socket.io') {
              YUI.add('socket.io', function (Y) {
                  Y.Socket = io;
              });
          }
      }
  }).use('socket.io', function (Y) {
      var socket = Y.Socket.connect('http://localhost');

      socket.on('news', function (data) {
          console.log(data);
          socket.emit('my other event', { my: 'data' });
      });
  });

这取自socket.io网站的示例,并允许您将其命名为Y.Socket. 这样,只有当您专门这样做时YUI().use('socket.io'),您才能真正访问Y.Socket,这有助于保持您的代码以正确的顺序组织和加载,这要归功于 YUI 加载器。

此外,如果您正在寻找一种更简单的方法将您的 YUI App Framework 应用程序与 Socket.IO 集成,请随时查看我创建的Socket Model Sync YUI Gallery 模块。

希望这会有所帮助,如果您对整合两者有任何疑问,请告诉我!

于 2013-08-18T01:31:15.233 回答