導航:首頁 > IDC知識 > socket使用域名連接

socket使用域名連接

發布時間:2020-11-20 19:04:24

1、nginx 如何同時配置https和wss

nginx同時配置https和wss代碼如下:

server {

listen 443 ssl;

server_name localhost;

ssl on;

root html;

index index.html index.htm;

ssl_certificate ******.pem;

ssl_certificate_key  *******.key;

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

location /{

proxy_pass https://localhost:3001;

}


location /ws {

proxy_pass https://localhost:8181; 

proxy_read_timeout 60s;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection 'Upgrade';


}

WebSocket協議的握手和HTTP是兼容的,它使用HTTP的Upgrade協議頭將連接從HTTP連接升級到WebSocket連接。這個特性使得WebSocket應用程序可以很容易地應用到現有的基礎設施。就可以使用https//+域名訪問和使用wss://+域名+/ws訪問了

2、使用socket方式可以 connect 某個特定域名伺服器

connect()函數參數是 connect(int sockfd, const struct sockaddr * addr, socklen_t addrlen);

其中addr即地址,這里如果要綁定域名的話,首先需要從域名轉為ip地址進行綁定,即通版過gethostbyname(const char * name)函數權將域名轉為ip就可以了

3、Socket 怎麼監聽域名?謝謝 了

監聽域名不行的。 域名最終也要解析為IP的

4、伺服器通過socket連接後,向客戶端發送字元串「連接上了」。在伺服器上顯示客戶端的IP地址或域名。

tcpclient的行不行 tcpclient實際上來是socket的一個封裝 如果可以源 就發附件
客戶端連上 服務端顯示IP連接 埠 什麼的 至於域名這個東西 你完全可以自己修改host文件就實現了 或者你用c#裡面的dns相關的解析出來就可以了

5、花生殼域名,socket編程TCP方式為什麼連接訪問不了

你是否可以獲取公網IP呢?如果可以的話,保證內網可以訪問,然後做好埠映射,登陸花生殼就可以了

6、小程序socket域名怎麼配置?

對於域名和伺服器的選擇上,要看微信小程序製作方是否硬性需要進行綁定開發,如果沒有規定綁定開發的話可以自主選擇域名和伺服器,像這個在阿里雲或iisp都是有相關服務的。

具體方法:

先在utils文件夾粘貼一個io的js

然後 npm install wxapp-socket-io

config文件夾下新建一個socket.js,對socket連接進行封裝,如下:

const io = require('../utils/io.js')
let url = 'wss://......'
let wsStatus = false
let onSocket = null
export const connect = function(cb){
if(!onSocket){
onSocket = io(url)
onSocket.on('connect', function (res) {
cb(true,onSocket)
wsStatus = true
})
setTimeout(function(){
if(!wsStatus){
cb(false,onSocket)
}
},10000)
}else{
cb(true,onSocket)
}
}

在要引用的頁面調用,全局封裝訂閱方法

let openSocket = require('../../config/socket')
let app = getApp()
let socket = null
Page({
data: {
zl: [[422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525], [422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525]]
},onLoad: function () {
let that = this;
//socket調用
openSocket.connect(function (status, ws) {
if (status) {
socket = ws  this.subscribe('zl')//對封裝好對訂閱方法進行調用
socket.on('broadcast', function (msg) {//廣播
console.log("broadcast");
console.log(msg);
})
} else {
alert("socket 連接失敗")
}
});
},subscribe: function (type) {
if (socket) {
let eis = this.data[type]
if (eis && eis.length > 0) {
let param = {//僅供參考,根據介面自行更改
eis: eis.join(',')
}
socket.emit('subscribe', JSON.stringify(param));
}
}
}});

註:創建一個 WebSocket 連接;一個微信小程序同時只能有一個 WebSocket 連接,如果當前已存在一個 WebSocket 連接,會自動關閉該連接,並重新創建一個 WebSocket 連接。

與socket使用域名連接相關的知識