jquery-ui - YUI3 和 socket.io

标签 jquery-ui sockets socket.io yui

只是一个简单的问题:

我的网站使用 YUI3 框架,并希望使用 socket.io 框架。

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

但是这种方法还有退路吗?如果是,那么我应该如何整合两者?

这是代码片段:

<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>

最佳答案

您正在做的事情肯定有效,并且以这种方式使用它没有问题,除非您与其他名为 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 Loader,您的代码以正确的顺序组织和加载。

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

希望这对您有所帮助,如果您对集成两者还有任何疑问,请告诉我!

关于jquery-ui - YUI3 和 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290934/

相关文章:

android - 使用 Android 连接到本地服务器

c# - 如何设置 Socket.ConnectAsync 超时?

node.js - 在 Controller 中使用 socket.io

c# - 如何在代码隐藏中获取 jQuery 多选 UI 的选定值?

Jquery 对话框 - 对象不支持此属性或方法

Java DataInputStream 读取不返回

c++ - 如何将websocket客户端连接到服务器?

jquery - 从右向左滑动?

javascript - 将 jquery 动画还原为原始 css 状态

node.js - 运行 balloons.io 时出错