只是一个简单的问题:
我的网站使用 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/