更好的发出Socket的结构.IO消息并等待结果
better structure for emitting a Socket.io message and waiting for result
我这样使用Socket.io
和Angular.js
:
//socket emitter
$scope.checkUsername = function (username) {
$scope.socket.emit('checkUsername', {username: username});
};
.
.
.
.
.
//socket listener
$scope.socket.on('checkUsernameResult', function (result) {
$scope.$apply(function () {
//Do something with result
});
});
我的意思是,我设置了一个用于发出的块和一个用于侦听的代码块,可以在代码中的任何地方,甚至是另一个文件。我的问题是:有没有更好的写法?
例如,我想检查用户名的可用性,我想写一个代码发送数据,等待结果就在那里,并在它自己的结构正确,当我们在Node.js
创建回调函数。
我认为我这样写代码是不正确的。我说的是客户端(Angular控制器)
app.factory('socket', function($rootScope) {
var socket = io.connect("http://localhost:8000");
return {
on: function(eventName, callback) {
socket.on(eventName, function() {
var args = arguments;
$rootScope.$apply(function() {
callback.apply(socket, args);
});
});
},
emit: function(eventName, data, callback) {
socket.emit(eventName, data, function() {
var args = arguments;
$rootScope.$apply(function() {
if (callback) {
callback.apply(socket, args);
}
});
})
}
};
});
然后用回调函数调用你的监听器。
function doSomething(req) {
return true;
}
socket.on('some listener', doSomething(req));
并发出
socket.emit("some emit event", {some: '', stuff: ''});
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- Ajax聊天消息重复而不仅仅是更新
- JSONP请求返回结果,但也触发error_callback
- 如果localstorage为空,则显示欢迎消息
- 如果文本筛选器在ng重复中未返回结果,则显示消息
- 显示无结果消息灵活
- 角度:当没有结果时显示一条消息 ng-重复角度 ?(具体情况)
- 在网格视图中显示不同的消息,用于没有绑定数据和未检索到结果
- 当没有结果返回 JavaScript 搜索时显示消息
- ng-reeat中的角度过滤器——当没有匹配结果时显示消息
- 我想在获取结果时显示一条消息
- 如果无法在指定时间内从服务器检索结果,则弹出警告消息
- 为“未找到结果”添加自定义消息
- 在“没有结果”的情况下;在Express场景中,我如何将选择错误消息输出到浏览器而不显示空数组[]
- 如何根据从三个子控制器获得的结果在父控制器中显示动态消息
- 更好的发出Socket的结构.IO消息并等待结果
- 如果结果为0,则显示消息
- 如何使用angular js动态更改网页上各种结果的状态消息
- 使Javascript RSA消息加密给出相同的结果