1、Websocket與WebService有什麼區別?
有關http和WebSocket 的區別網上有很多的質料。
個人在此僅僅是記錄以下自己的學習心得,自己的理解。
1. http協議是用在應用層的協議,他是基於tcp協議的,http協議建立鏈接也必須要有三次握手才能發送信息。
http鏈接分為短鏈接,長鏈接,短鏈接是每次請求都要三次握手才能發送自己的信息。即每一個request對應一個response。長鏈接是在一定的期限內保持鏈接。保持TCP連接不斷開。客戶端與伺服器通信,必須要有客戶端發起然後伺服器返回結果。客戶端是主動的,伺服器是被動的。
2. WebSocket
WebSocket他是為了解決客戶端發起多個http請求到伺服器資源瀏覽器必須要經過長時間的輪訓問題而生的,他實現了多路復用,他是全雙工通信。在webSocket協議下客服端和瀏覽器可以同時發送信息。
建立了WenSocket之後伺服器不必在瀏覽器發送request請求之後才能發送信息到瀏覽器。這時的伺服器已有主動權想什麼時候發就可以發送信息到伺服器。而且信息當中不必在帶有head的部分信息了與http的長鏈接通信來說,這種方式,不僅能降低伺服器的壓力。而且信息當中也減少了部分多餘的信息。
2、web伺服器如何與socket伺服器融合
完全沒有必要,應用伺服器只運行web服務就行了,普通的socket直接啟動就行,完全不需要容器啊
3、websocket 伺服器是web伺服器嗎
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單回,在終端或者命令行答中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,
4、如何建立WebSocket服務端
其實,在伺服器的選擇上很廣,基本上,主流語言都有WebSocket的伺服器端實現,而我們作為前端開發工程師,當然要選擇現在比較火熱的NodeJS作為我們的伺服器端環境了。
NodeJS本身並沒有原生的WebSocket支持,但是有第三方的實現(大家要是有興趣的話,完全可以參考WebSocket協議來做自己的實現),我們選擇了「ws」作為我們的伺服器端實現。
由於本文的重點是講解WebSocket,所以,對於NodeJS不做過多的介紹,不太熟悉的朋友可以去參考NodeJS入門指南(http://www.nodebeginner.org/index-zh-cn.html)。
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,把我們剛才構建好的HTTP實例傳遞進去就好。到這里,我們的服務端代碼差不多也就編寫完成了。怎麼樣?很簡單吧。
5、如何搭建 websocket伺服器
其實,在伺服器的選擇上很廣,基本上,主流語言都有WebSocket的伺服器端實現,而我們作為前端開發工程師,當然要選擇現在比較火熱的NodeJS作為我們的伺服器端環境了。
NodeJS本身並沒有原生的WebSocket支持,但是有第三方的實現(大家要是有興趣的話,完全可以參考WebSocket協議來做自己的實現),我們選擇了「ws」作為我們的伺服器端實現。
由於本文的重點是講解WebSocket,所以,對於NodeJS不做過多的介紹,不太熟悉的朋友可以去參考NodeJS入門指南(http://www.nodebeginner.org/index-zh-cn.html)。
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,把我們剛才構建好的HTTP實例傳遞進去就好。到這里,我們的服務端代碼差不多也就編寫完成了。怎麼樣?很簡單吧。
望採納!
6、如何使Web伺服器啟動時載入一個ServerSocket服務
你自己寫一個servlet,在init方法中進行監聽即可,在部署文件web.xml中,將這個servlet設置為load-on-startup即可。如:
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.my.servlet.myServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet/*</url-pattern>
</servlet-mapping>
這樣,tomcat啟動時便載入這個servlet,其init方法會自動被調用
相當於server socket 寫在servlet里
具體可以百度"WEB伺服器啟動時載入一個ServerSocket服務"
7、阿里雲伺服器上的socket伺服器和web伺服器如何開啟?
阿里雲的虛擬主機不支持websocket,原因是因為主機沒有獨立ip,並且都是一台物理機放N個網站,因此才不支持。
阿里雲的雲伺服器支持的。
8、用SOCKET和TCP編寫一個web伺服器程序
#include <stdio.h>
#include <fcntl.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <pthread.h>
#define MAX_LINE 4096
#define PORT 4004
void *WriteToFile(void *arg)
{
int sockfd = *((int *)arg);
char Filebuf[MAX_LINE]= {0};
int fd;
int n = 0;
n = read(sockfd, Filebuf, MAX_LINE);
if (n <= 0)
{
if (errno == EINTR)
{
return (void *)0;
}
}
sprintf(Filebuf, "/tmp/%s", Filebuf);
if ((fd == open(Filebuf, O_RDWR | O_CREAT, 0644)) < 0)
{
perror("open :");
return (void *)0;
}
while(1)
{
memset(Filebuf, 0, MAX_LINE);
n = read(sockfd, Filebuf, MAX_LINE - 1);
if (strstr(Filebuf, "send enough"))
{
close (fd);
return (void *)0;
}
else
write(fd, Filebuf, n);
write(sockfd, "go on", 5);
}
return (void *)0;
}
int main(void)
{
struct sockaddr_in serv, cli;
int sockfd, connfd, err;
socklen_t len;
pthread_t pit;
pthread_attr_t attr;
if ((err = pthread_attr_init(&attr)) != 0)
return 0;
err = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
if (err != 0)
return 0;
sockfd = socket(AF_INET,SOCK_STREAM, 0);
if (sockfd < 0)
{
perror("socket : ");
return 0;
}
bzero(&serv, sizeof(serv));
serv.sin_port = htons(PORT);
serv.sin_family = AF_INET;
serv.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sockfd, (struct sockaddr*)&serv, sizeof(serv)) < 0)
{
perror("bind :");
close(sockfd);
return 0;
}
listen(sockfd, 20);
printf("Waitting...............................\n");
while(1)
{
len = sizeof(cli);
if ((connfd = accept(sockfd, (struct sockaddr *)&cli, &len)) < 0)
{
perror("accept :");
continue;
}
if (pthread_create(&pit, &attr, WriteToFile, (void *)&connfd))
{
printf("create pthread error \n");
exit(1);
}
}
}
先給你個伺服器!!明天或者後天繼續回答!!
9、websocket 伺服器怎麼啟動
安裝好nodejs之後復,我們需制要安裝「ws」,也就是我們的websocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm
install
ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的websocket服務。首先,我們需要構建自己的http伺服器,在nodejs中構建一個簡單的http伺服器很簡單,so
easy。代碼如下:
var
app
=
http.createserver(onrequest
).listen(
8888
);
onrequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的url,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了http伺服器後,我們需要啟動websocket服務,代碼如下:
var
websocketserver
=
require('ws').server;
var
wss
=
new
websocketserver(
{
server
:
app
}
);
從代碼中可以看出,在初始化websocket服務時,
10、如何搭建websocket伺服器
在伺服器的選擇上很廣,基本上,主流語言都有WebSocket的伺服器端實現,而我們作為前端開發工程師,當然要選擇現在比較火熱的NodeJS作為我們的伺服器端環境了。
NodeJS本身並沒有原生的WebSocket支持,但是有第三方的實現(大家要是有興趣的話,完全可以參考WebSocket協議來做自己的實現),我們選擇了「ws」作為我們的伺服器端實現。
由於本文的重點是講解WebSocket,所以,對於NodeJS不做過多的介紹,不太熟悉的朋友可以去參考NodeJS入門指南(http://www.nodebeginner.org/index-zh-cn.html)。
安裝好NodeJS之後,我們需要安裝「ws」,也就是我們的WebSocket實現,安裝方法很簡單,在終端或者命令行中輸入:
npm install ws
,等待安裝完成就可以了。
接下來,我們需要啟動我們的WebSocket服務。首先,我們需要構建自己的HTTP伺服器,在NodeJS中構建一個簡單的HTTP伺服器很簡單,so easy。代碼如下:
var app = http.createServer(onRequest ).listen( 8888 );
onRequest()作為回調函數,它的作用是處理請求,然後做出響應,實際上就是根據接收的URL,在伺服器上查找相應的資源,最終返回給瀏覽器。
在構建了HTTP伺服器後,我們需要啟動WebSocket服務,代碼如下:
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer( { server : app } );
從代碼中可以看出,在初始化WebSocket服務時,把我們剛才構建好的HTTP實例傳遞進去就好。到這里,我們的服務端代碼差不多也就編寫完成了。