2010-02-28 70 views
0

我想編寫一個瀏覽器聊天並使用C++編寫自己的服務器,因爲您無法在php和其他語言中的不同實例(聊天用戶)之間發送文本。 我有Apache運行端口80,這就是爲什麼我不能運行「聊天http服務器」在端口80.一些瀏覽器阻止連接到一個http站點,如果它不使用端口80. 有人知道,我應該使用什麼端口爲這個小型服務器提供最佳瀏覽器兼容性也許8080?我也可以購買一個不同的IP來運行它:80,但我的主機想要一個新的IP每月5€...替代http端口?

謝謝。

+3

嗯。我不知道任何阻塞端口的瀏覽器。也許是防火牆,但爲什麼瀏覽器會關心? – 2010-02-28 19:04:55

+1

例如Firefox會阻止連接到SSH-Port(22)等端口。而且我知道,一些移動提供商(筆記本電腦上的無線互聯網)會阻塞很多端口,因爲他們不希望人們使用在線流和其他高流量的應用程序。 – 2010-02-28 19:14:35

回答

1

您可以使用mod_proxy(或mod_proxy_balancer)將Apache站點的某個分支上的請求轉發到偵聽其他某個端口上的本地主機的其他Web服務器。

+0

好主意,謝謝。你認爲它會降低連接速度嗎? http聊天服務器只提供文本,其他所有內容(圖形,...)。所以這不應該是一個問題,對吧? – 2010-02-28 19:19:13

0

使用主機名來劃分您的應用程序--i.e。,www.foo.bar:80chat.foo.bar:80

+0

據我所知,你只能在IP上打開一個套接字,而不是主機名? – 2010-02-28 19:15:53

+0

uhm是的,但是您的網絡服務器能夠根據主機名來路由流量 - 也就是說,網絡服務器可以在一個物理服務器ip_address對上爲一千個不同的域名服務。 – 2010-02-28 19:18:10

+0

是的,但我的服務器有一個自己的偵聽套接字,所以這是行不通的。 mod_proxy(Tronic)將解決這個問題。 – 2010-02-28 19:26:36

0

除端口80外,端口443(通常爲https)最常用於通過各種防火牆進行出站連接。

+0

我已經使用https和我認爲有一些瀏覽器,只允許連接到443,如果它真的與SSL SSL證書 – 2010-02-28 19:17:01

0

你可以寫你的網站在Apache mod_chat或其他東西。通過這種方式,您可以將所有基本的HTTP資料保存到Apache中,並且可以專注於您的應用程序將C++的全部功能。

+0

我沒有進入apache模塊。據我瞭解Apache的模塊化結構,它會爲每個聊天用戶打開一個自己的線程。所以我無法將聊天消息發送給同一個房間中的每個用戶。這就是爲什麼我想將它作爲自己的網絡服務器編碼。我認爲把這些文本寫入數據庫(比如mysql)並不是一個好主意,並且每秒要多次請求一個新文本。那會導致糟糕的表現。 – 2010-02-28 19:44:11

+0

@Dr。您可以創建一個共享內存區域,在該區域中所有線程或進程(取決於您的apache設置)可以交換數據。如果您創建自己的服務器,則必須解決相同的問題,除非使用單進程異步體系結構。 – Gianni 2010-02-28 22:37:15