只是一个简单的问题:
我正在我的网站使用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>发布于 2013-08-18 01:31:15
您所做的肯定有效,如果不与其他名为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应用程序集成到Socket.IO中,那么可以随意查看我创建的YUI库模块。
希望这有帮助,并让我知道,如果你有任何关于整合这两者的任何问题!
https://stackoverflow.com/questions/18290934
复制相似问题