我已尝试过每个可能的URI组合,下面是我的代码。使用网页http://www.websocket.org/echo.html和“位置:”输入ws://websocket.mtgox.com/mtgox时,网页会显示该流的精彩Feed。但是当我复制并粘贴下面的示例,并为流使用相同的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
结束模块
答案 0 :(得分:0)
我不熟悉WebSocket4Net,但这可能与某人与另一个库(MtGox API and websocketpp)的类似问题有关,缺少Origin标头会导致MtGox取消403错误的连接。
它可以在浏览器中运行,因为它们都发送了Origin标头。如果您的WebSocket实现有一种方法可以将一个Origin标头添加到可能值得一试的传出握手中。