当使用AJAX时,我倾向于以JSON对象(又称Javascript)的形式将对象从我的服务器传递给Javascript.我的Javascript中的某些函数依赖于我正在使用的特定类型的对象.例如,让我们使用电话号码.我有一个构造函数:
function PhoneNumber(number, type, isPrimary, contactId, id, className) {
this.number = number;
this.type = type;
this.isPrimary = isPrimary;
this.contactId = contactId;
this.id = id;
this.className = className;
}
Run Code Online (Sandbox Code Playgroud)
在我的Javascript中创建电话号码对象时使用的.在某些情况下,我不在JS中创建对象,我从服务器获取对象,因此它以具有完全相同字段的通用对象的形式出现.因此,当我的代码依赖于特定类型时,使用如下内容:
var objType = objArray[i].constructor.name;
var mappedObj;
switch(objType) {
case 'PhoneNumber':
currentArray = currentArray.phone;
//Convert response to javascript object.
mappedObj = mapPhone(jsonResponse[i]);
break;
case 'Email':
currentArray = currentArray.email;
mappedObj = mapEmail(jsonResponse[i]);
break;
case 'Address':
currentArray = currentArray.address;
mappedObj = mapAddress(jsonResponse[i]);
break;
case 'Website':
currentArray = currentArray.website;
mappedObj = mapWebsite(jsonResponse[i]);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我检查对象构造函数的名称,并根据该名称设置某些变量.如果我检查名称的对象是来自服务器的JSON,它只是给我一个通用的"对象"响应,因此代码不起作用.我通过为每个对象使用映射函数来解决这个问题,例如:
function …Run Code Online (Sandbox Code Playgroud) 在我的docker-compose中:
laravel:
image: trackware
links:
- postgis:postgis
ports:
- "80:80"
- "3306:3306"
- "443:443"
- "220:22"
- "8000:8000"
net: "host"
restart: always
volumes:
- C:/H/repositories/pubnub:/share
container_name: laravel
postgis:
image: mdillon/postgis
env_file: .postgis_env
ports:
- "9090:9000"
- "54320:5432"
container_name: postgis
Run Code Online (Sandbox Code Playgroud)
如果我跑,docker-compose up -d我得到这个错误:
Conflicting options: host type networking can't be used with links. This would result in undefined behavior
Run Code Online (Sandbox Code Playgroud)
那么,net: "host"在链接到postgis容器时我将如何使用?laravel容器需要运行pubnub客户端,这需要高性能的网络来实现实时消息处理,还需要链接到postgis容器来访问db.
那么,有什么建议吗?我正在使用docker 1.10.2
当从pubnub接收消息时,没有关于发送者的信息.如何知道来自visitorA或visitorB的消息?在网络上有一些例子,发送者用信息发送他的名字,但是如何知道他不是在欺骗别人的身份?
这是一个聊天界面的示例:
<html>
<body>
<form id="message_form">
<input id="message_input" type="text"/>
</form>
<div id="chat"></div>
<script src="http://cdn.pubnub.com/pubnub-3.7.1.min.js"></script>
<script>
var pubnub = PUBNUB.init({
publish_key: 'demo',
subscribe_key: 'demo'
});
pubnub.subscribe({
channel: 'chat',
message: function(message){
var div = document.createElement("div");
div.textContent = message;
var chat = document.getElementById("chat");
chat.appendChild(div);
}
});
var form = document.getElementById("message_form");
form.onsubmit = function(e) {
var input = document.getElementById("message_input");
pubnub.publish({
channel: 'chat',
message: input.value
});
input.value = '';
e.preventDefault();
};
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个包含 SDK 名称和版本的字段,但它没有标准化,因此我可以轻松提取名称和版本。这些是人为的值,但代表了我正在使用的可能值:
正如您所看到的,“/”的使用不一致,我需要一种方法来一致地解析数字中的字母,以便我最终得到如下两列:
JavaScript 2.3.4
JavaScript 4.3.1
Android 4.6.5
Android 3.2.1
Swift 4.5.3
Swift 3.1.1.5
Run Code Online (Sandbox Code Playgroud)
我已经寻找了不同的方法来做到这一点,但我发现似乎没有任何方法可以满足我的要求。
最终,我需要将其放入 Postgres SELECT 语句中,如下所示:
我认为 DISTINCT 关键字是不必要的并且令人困惑。它最初是 COUNT/GROUP BY 查询的一部分,但为了简单起见,我只想分别列出具有三列的所有行:sdk、sdk_name 和 sdk_version。从那里我将使用答案中的最佳解析公式来按照我的要求进行操作。
SELECT sdk, [parse sdk name formula] as "sdk_name", [parse sdk version formula] as "sdk_version"
Run Code Online (Sandbox Code Playgroud)
此外,我没有在查询中提供固定的 SDK 列表,因此我不确定该with/as/values策略是否适合我,但我不知道并且看起来很有用。不过,我认为 with/values 可以只是另一个 SELECT 查询。
我以前问过这个问题,但没有任何运气..我在本教程后遇到问题https://www.pubnub.com/blog/2014-10-21-building-a-webrtc-video-and-voice-chat - 应用/.我写了代码,它在本地网络上完美运行,但是当我尝试连接远程客户端(即不在同一网络上)时,代码不再起作用了.它只显示一个黑屏,客户端的视频应该是.
phone.receive(function(session){
session.connected(function(session){
$("#vid-box").append(session.video); //outputs black screen
});
session.ended(function(session) {alert("Call ended: "+session.number});
});
Run Code Online (Sandbox Code Playgroud)
我甚至联系了PubNub,但他们无法提供帮助.有人有什么想法吗?
我正在研究本机推送通知。在向任何第三方通知提供商进行购买之前,我正在寻找一些答案
我正在尝试将我的varchar列数据( stringifed )转换JSON为MAP数据类型,以便我可以将数据作为元素引用。
WITH
data(c) AS (
SELECT message from mydb.mytable
),
parsed AS (
SELECT cast(json_parse(c) as map(varchar, varchar)) AS m
FROM data
)
SELECT m['action'], m['uuid']
FROM parsed
Run Code Online (Sandbox Code Playgroud)
示例数据如下所示:
{"action":"send","timestamp":1566432054,"uuid":"1234"}
我尝试了此处提供的解决方案:How to cast varchar to MAP(VARCHAR,VARCHAR) in presto,这是我从values用select语句替换得到查询的地方,但它不起作用。我收到错误:
INVALID_CAST_ARGUMENT: Value cannot be cast to map(varchar,varchar)