我做的socket.io实现是错误的.我正在尝试对mysql数据实现长轮询.
对于此演示,我将为连接到我创建的长轮询服务器的每个用户提取用户数据.每个用户将其唯一的user_id传递给服务器以获取与他/她相关的数据.(在真实应用中,我想获取用户通知)
用户连接到服务器,服务器也从数据库进行长轮询.但问题是,即使我从客户端传递了唯一的ID,同样的数据也被推回到客户端.
用户1通过了id 5,用户2通过了id 3.这两个用户获得的数据与响应相同(用户1的数据)
这是客户端代码:
var user_id = 5; //hardcoded for now, but in real its fetched from a form
var params = {
userId: user_id,
};
// create a new websocket
var socket = io.connect('http://localhost:8000', { query: params });
// on message received we print all the data inside the #container div
socket.on('notification', function (data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
这是服务器端代码:
var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
fs = require('fs'),
mysql = require('mysql'),
connectionsArray = [], …
Run Code Online (Sandbox Code Playgroud) 我对角度/离子应用程序开发很新.我在某处读了以下内容
接口仅在编译时.这样只允许您检查收到的预期数据是否遵循特定结构.
我正在创建一个离子应用程序,API服务会将一些数据返回给用户.假设它是一个登录函数,API服务返回该数据.
我在Ionic中创建了一个提供程序,使用HTTPClient从API调用API.
//Provider
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
interface LoginResponse {
success: boolean;
message: string;
token: string;
userId: number;
}
@Injectable()
export class LoginServicesProvider {
constructor(public http: HttpClient) {
}
login(reqData): Observable<LoginResponse[]> {
return this.http.post<LoginResponse[]>('localhost:3000/api/login', reqData);
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我创建了一个名为LoginResponse的接口
Login组件的代码如下:
//Component
import { LoginServicesProvider } from './../../providers/login-services/login-services';
import { Component } from '@angular/core';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'page-login-page',
templateUrl: 'login-page.html',
}) …
Run Code Online (Sandbox Code Playgroud) I know this question has been answered many times. I tried a few of the solutions from here but nothing worked. I'm not using any PHP framework.
I have an insert operation taking place and I want to get the id of the inserted row.
Here's my code:
$qry="INSERT INTO tablename(content) VALUES('".$content."')";
setData($qry);
Run Code Online (Sandbox Code Playgroud)
setData() is a user defined function which does insert operation.
//for data submit
function setData($qry)
{
$obj=new DBCon();
$res=$obj->submitQuery($qry);
return $res;
}
//fetches result
function getData($qry)
{ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 jQuery 验证器插件对文件输入类型进行验证。文件输入类型应仅接受具有 .jpeg、.jpg 和 .png 扩展名的图像,文件大小不应大于 1MB。其他输入字段的验证工作没有任何问题。所需的验证适用于文件输入类型。
可能是什么问题?
Javascript
jQuery.validator.addMethod('filesize', function(value, element, param) {
return this.optional(element) || (element.files[0].size <= param)
});
$('#form').validate({
rules: {
firstname: {
minlength: 6,
required: true
},
lastname: {
minlength: 6,
required: true
},
file: {
required: true,
accept: "png|jpeg|jpg",
filesize: 1048576
}
},
messages:
{
file: "File must be JPEG or PNG, less than 1MB"
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) { …
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的JSON对象:
var post = {
"post_id": "1",
"content": "content",
"post_author": {
"id": "12",
"firstName": "Amelia",
"lastName": "Earheart",
},
"isLiked": false,
"likes_count": 0,
"likers": [],
"comments_count": 0,
"commenters": [],
"comments": []
};
Run Code Online (Sandbox Code Playgroud)
并post
从前端传递给下面给出的函数.
var vm = this;
vm.likePost = function(post) {
var likedPost = post;
vm.userInfo();
likedPost.likers.push(userObject); //Here
myService.postLike(likedPost).success(function(data) {
likedPost.isLiked = true;
likedPost.likes_count++;
vm.posts = data;
});
};
Run Code Online (Sandbox Code Playgroud)
但这样做,我得到一个JavaScript错误说push is not a function
在行likedPost.likers.push(userObject);
并userObject
返回vm.userInfo()
,它看起来像这样:
vm.userInfo = function() {
myService.getBasicUserInfo().success(function(data) {
vm.currentPost.post_author.id …
Run Code Online (Sandbox Code Playgroud) 我有如下所示的对象数组
readonly allItems = [
{
id: 0,
title: "Item 0",
belongsTo: 'admin'
},
{
id: 1,
title: "Item 1",
belongsTo: 'user'
},
{
id: 2,
title: "Item 2",
belongsTo: 'all'
},
{
id: 3,
title: "Item 3",
belongsTo: 'user'
},
{
id: 4,
title: "Item 4",
belongsTo: 'all'
}
];
Run Code Online (Sandbox Code Playgroud)
我有一个像下面给出的数字数组
let selItems = [0,2,4];
Run Code Online (Sandbox Code Playgroud)
我想要做的是allItems
基于selItems
数组过滤数组。为此,我编写了以下代码,这显然是错误的。
for(let i=0; i< this.allItems.length; i++){
if(selItems.includes(this.allItems[i].id)){
tempMenu.push(this.allItems[i]);
}
console.log(tempMenu);
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
[{
id: 0,
title: "Item 0",
belongsTo: 'admin' …
Run Code Online (Sandbox Code Playgroud)