![](/img/trans.png)
[英]how to make Autobahn WAMP Python server & Javascript client work together?
[英]WAMP websocket server connection error on Python with Autobahn
我正在嘗試使用 Python 連接到 WAMP websocket 服務器並訂閱接收消息,但我無法實現它。 我已經設法通過以下代碼在 JS 上使用 Autobahn 進行連接:
< script src = "autobahn.js" > < /script> <script >
var conn = new ab.Session('ws://examplehost.com:8443/ws',
function() {
conn.subscribe('channel', function(topic, data) {
console.log(data);
alert('New data arrived: "' + topic + '" : ' + data.title);});},
function() {
console.warn('WebSocket connection closed');
}, {'skipSubprotocolCheck': true});
</script>
但是在 Python 上使用相同的庫,下面的代碼會導致 404 錯誤:
from autobahn.asyncio.wamp import ApplicationSession, ApplicationRunner
class Component(ApplicationSession):
async def onJoin(self, details):
def on_event(i):
print("New data arrived: {}".format(i))
await self.subscribe(on_event, 'channel')
if __name__ == '__main__':
url = "ws://examplehost.com:8443/ws"
runner = ApplicationRunner(url)
runner.run(Component)
這是我得到的錯誤:
failing WebSocket opening handshake ('WebSocket connection upgrade failed (404 - NotFound)')
dropping connection to peer tcp4:123.123.123.123:8443 with abort=True: WebSocket connection upgrade failed (404 - NotFound)
關於如何解決這個問題的任何想法? 經過大量搜索后,可能使用服務器上的路徑/ws
會導致一些問題,但我不確定。 我也嘗試過許多其他 Python 模塊,但不是運氣。
這看起來像一個網絡服務器問題。 我的理解是 websocket 是通過升級常規 HTTP 連接創建的。
您需要配置 web 服務器,以及中間的任何代理,以升級配置。
我在 nginx 中遇到過這種情況。 這看起來是一個很好的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.