[英]Autobahn component with .NET router (WampSharp)
目前,我正在使用WAMP原型,我很好奇這樣的事情是否可行,因為我無法使其正常工作:
1,用C#編寫WAMP路由器(WampSharp):
const string location = "ws://127.0.0.1:9999/wsdemo";
try
{
using (IWampHost host = new DefaultWampHost(location))
{
IWampHostedRealm realm = host.RealmContainer.GetRealmByName("realm1");
host.Open();
Console.WriteLine("Host is running on : " + location);
}
}
catch(Exception exc)
{
Console.WriteLine("Error : " + exc.ToString());
}
2.具有用python編寫的組件:
import random
from twisted.internet.defer import inlineCallbacks
from autobahn.twisted.util import sleep
from autobahn.twisted.wamp import ApplicationSession, ApplicationRunner
class Component(ApplicationSession):
"""
An application component that publishes events with no payload
and with complex payload every second.
"""
@inlineCallbacks
def onJoin(self, details):
print("session attached")
counter = 0
while True:
num = random.randint(0, 100)
print("publishing : com.myapp.topic1", num)
self.publish(u'com.myapp.topic1', num)
counter += 1
yield sleep(1)
if __name__ == '__main__':
runner = ApplicationRunner(url=u"ws://127.0.0.1:9999/wsdemo", realm=u"realm1")
runner.run(Component)
當我運行python腳本時,出現錯誤:
2017-02-20T19:49:46+0100 Main loop terminated.
2017-02-20T19:49:46+0100 Traceback (most recent call last):
2017-02-20T19:49:46+0100 File "C:\Program Files (x86)\JetBrains\PyCharm Educational Edition 1.0.1\helpers\pydev\pydevd.py", line 2199, in <module>
2017-02-20T19:49:46+0100 globals = debugger.run(setup['file'], None, None)
2017-02-20T19:49:46+0100 File "C:\Program Files (x86)\JetBrains\PyCharm Educational Edition 1.0.1\helpers\pydev\pydevd.py", line 1638, in run
2017-02-20T19:49:46+0100 pydev_imports.execfile(file, globals, locals) # execute the script
2017-02-20T19:49:46+0100 File "D:/Programming/Astronomy/Dev/ZenithPlatform/backbone/local/tests/wamp.py", line 41, in <module>
2017-02-20T19:49:46+0100 runner.run(Component)
2017-02-20T19:49:46+0100 File "C:\Python27\lib\site-packages\autobahn\twisted\wamp.py", line 312, in run
2017-02-20T19:49:46+0100 raise connect_error.exception
2017-02-20T19:49:46+0100 twisted.internet.error.ConnectionRefusedError: Connection was refused by other side: 10061: No connection could be made because the target machine actively refused it..
按照http://autobahn.ws/python/wamp/programming.html#running-a-wamp-router
我們創建的組件嘗試連接到本地運行的WAMP路由器,該路由器接受端口8080和域realm1上的連接。
我們建議的方法是將Crossbar.io用作WAMP路由器。 除了Crossbar.io外,還有其他WAMP路由器。
這樣的事情可以實現嗎?
謝謝,
西瓦
您的using語句會在程序結束之前處理路由器。
只需添加一個Console.ReadLine(); 在Console.WriteLine()語句之后的使用范圍內找到該語句。 那應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.