0

我已经尝试了 URI 的所有可能组合,下面是我的代码。当使用网页http://www.websocket.org/echo.html并为“位置:”输入 ws://websocket.mtgox.com/mtgox 时,网页显示了一个不错的流提要。但是当我在下面复制并粘贴他们的示例并为流使用相同的 URI 时,我得到“错误:未定义”和“断开连接”。根据下面的示例,我尝试将其转换为 VB,但没有成功。关于我做错了什么的任何想法?

导入 WebSocket4Net

模块模块1

Sub Main()

    Dim websocket As New WebSocket4Net.WebSocket("ws://websocket.mtgox.com:80/mtgox")
    Dim stream As String

    Console.WriteLine(websocket.State)
    Console.ReadKey()




    AddHandler websocket.Opened, Sub(s, e) socketOpened()
    AddHandler websocket.Error, Sub(s, e) socketError()
    AddHandler websocket.Closed, Sub(s, e) socketClosed()
    AddHandler websocket.MessageReceived, Sub(s, e) socketMessage()
    AddHandler websocket.DataReceived, Sub(s, e) socketDataReceived()

    websocket.Open()

    Console.ReadKey()

End Sub

Sub socketOpened()
    MsgBox("Opened")
End Sub

Sub socketClosed()
    MsgBox("Closed")
End Sub

Sub socketError()
    MsgBox("Error")
End Sub

Sub socketMessage()
    'MsgBox(e)
End Sub

Sub socketDataReceived()
    MsgBox("Data received")
End Sub

端模块

4

1 回答 1

0

我不熟悉 WebSocket4Net,但这可能与某人在另一个库(MtGox API 和 websocketpp)中遇到的类似问题有关,其中缺少 Origin 标头导致 MtGox 取消连接并出现 403 错误。

它适用于浏览器,因为它们都发送 Origin 标头。如果您的 WebSocket 实现有一种方法可以将 Origin 标头添加到传出握手中,这可能值得一试。

于 2013-11-19T01:27:46.990 回答