我刚开始学习节点,并将来自互联网的一些零碎拼凑在一起。我想使用node的一件事是SendGrid从客户端发送电子邮件。我通过在socket.io客户端手动输入socket = io.connect(http://localhost:8080);
(就像所有人都说的那样)来完成这项工作。在本地运行良好,直到我在heroku或类似的服务上托管它。
这是我的服务器代码的样子(下面的函数无关紧要,因为它们只是运行sendgrid的东西:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
// This is the socket.io port. I want the client to go through this.
server.listen(8080);
// this is used to serve a static html page in the public folder.
// I feel like the way I have this set up is part of the issue
app.set('port', (5000));
app.use(express.static(__dirname + '/public'));
app.listen(app.get('port'), function() {
console.log('Node app is running on port ' + app.get('port'));
});
我转到地址http://localhost:5000查看服务器的html。
以下是我编写的客户端代码:
// Init the socket
socket = io.connect('http://localhost');
// send stuff through it. this stuff doesnt matter. but it sends values
// Via json to the server to then use in an email.
socket.emit('sendCompile', {adr: receptients, bod: body });
这给了我错误:
socket.io-1.4.5.js:1 GET
http://localhost/socket.io/?
EIO=3&transport=polling&t=LFC_cxO
任何帮助将不胜感激。 (我一直在研究这个问题超过5个小时:D)
PS:我已经尝试将其更改为socket = io();
和socket = io.connect();
,就像其他人似乎都认为的那样。但这些都不起作用。我觉得这是一个关于我如何编写服务器的问题,因为我只是在找到它们时拼凑了一些东西。
答案 0 :(得分:-1)
您需要将域名从localhost更改为您的网站,并添加端口,例如:
global $wpdb; // Get the global $wpdb
$order_id = {Your Order Id}
$table = $wpdb->prefix . 'postmeta';
$sql = 'SELECT * FROM `'. $table . '` WHERE post_id = '. $order_id;
$result = $wpdb->get_results($sql);
foreach($result as $res) {
if( $res->meta_key == 'billing_phone'){
$phone = $res->meta_value; // get billing phone
}
if( $res->meta_key == 'billing_first_name'){
$firstname = $res->meta_value; // get billing first name
}
// You can get other values
// billing_last_name
// billing_email
// billing_country
// billing_address_1
// billing_address_2
// billing_postcode
// billing_state
// customer_ip_address
// customer_user_agent
// order_currency
// order_key
// order_total
// order_shipping_tax
// order_tax
// payment_method_title
// payment_method
// shipping_first_name
// shipping_last_name
// shipping_postcode
// shipping_state
// shipping_city
// shipping_address_1
// shipping_address_2
// shipping_company
// shipping_country
}
应该成为
socket = io.connect('http://localhost');
另请注意,您用于套接字的端口需要打开 - 如果端口未打开,您将遇到更多问题。